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