Einzelnen Beitrag anzeigen

Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#35

Re: Bass.dll Wave Data / FFT Data ?

  Alt 7. Feb 2009, 16:48
Hi,

ich grabe das Thema nochmal aus.

Ich habe gerade eine Procedure erstellt umd die Position auch auf Millisekunden einzustellen.

Delphi-Quellcode:
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;
Nun habe ich aber das Problem das der Song ca. 2 Sekunden Zeitfersetzt läuft.

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:

BASS_ChannelSetPosition(Channel, round((BASS_ChannelGetLength(Channel) / round(BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel)) * 1000)) * position)); führte aber leider zum selben Ergebnis.

Eine Idee woran das liegen kann ?

mfg blamaster
  Mit Zitat antworten Zitat