![]() |
Re: Bass.dll Wave Data / FFT Data ?
Such doch einfach mal im Projekt (alle Dateien, Strg+F + zweiter Reiter) nach Millisekunden...
-> Unit: BassChannelU.pas |
Re: Bass.dll Wave Data / FFT Data ?
Hi,
super dann funktioniert auch das :-D Jetzt steht nur noch die Frage offen, wieso manche Elemente des Forms auch schwarz "gepaintet" werden. Habe mal ein biold davon wie z.B.die checkBoxen aussehen angehängt. mfg und nochmal ein riesen Danke Blamaster |
Re: Bass.dll Wave Data / FFT Data ?
Zitat:
|
Re: Bass.dll Wave Data / FFT Data ?
Liste der Anhänge anzeigen (Anzahl: 1)
Stimmt, da fehlt etwas.
Sollte jetzt im anhang sein. |
Re: Bass.dll Wave Data / FFT Data ?
Hi,
ich grabe das Thema nochmal aus. Ich habe gerade eine Procedure erstellt umd die Position auch auf Millisekunden einzustellen.
Delphi-Quellcode:
Nun habe ich aber das Problem das der Song ca. 2 Sekunden Zeitfersetzt läuft.
procedure TBassPlayer.SetMilliSecPosition(Position: Longword);
var pos: Longword; begin if Channel = 0 then Exit; // Sound set Position if Modus = moSamples then BASS_ChannelSetPosition(Channel, round((BASS_ChannelGetLength(Channel) / GetSongLengthMS) * Position)); // Mod-Music set Position if Modus = moMusik then begin startmodplaytime := timegettime - (Position * 1000); pos := round(position * (SpeedinProzent / 100)) or $FFFF0000; BASS_ChannelSetPosition(Channel, pos); end; end; Wenn ich z.B. die Position auf 8000 ms setze, wird die Time Line auch korrekt auf der Position von 8 Sekunden gesetzt, der Song geht aber um ca. 2 Sekunden nach. Danach habe ich gesehen das du in deinem code auch eine solche procedure hast um habe folgende Zeile versucht:
Delphi-Quellcode:
führte aber leider zum selben Ergebnis.
BASS_ChannelSetPosition(Channel, round((BASS_ChannelGetLength(Channel) / round(BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel)) * 1000)) * position));
Eine Idee woran das liegen kann ? mfg blamaster |
Re: Bass.dll Wave Data / FFT Data ?
Das BASS-System hat eben nur eine Genauigkeit in Sekunden. Deine Millisekundenangabe wird intern gerundet und dann kommt es zu solchen Ungenauigkeiten.
|
Re: Bass.dll Wave Data / FFT Data ?
Hi,
danke für die Info, wozu dient denn aber die SetMilliSec Position in deiner pas, denn den Millisekunden wert könnte man ja auch extern runden und dann SetPosition übergeben ? mfg Blamaster |
Re: Bass.dll Wave Data / FFT Data ?
Damals kam hier im Forum die Frage auf, da habe ich diese Methoden eingebaut. Ich selbst brauchte sie noch nie, habe damals beim realisieren auch keine Probleme feststellen können. Wenn du da jetzt Probleme findest, dann denke ich, hängen diese mit der Genauigkeit zusammen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz