Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

TrackBar Song SetPosition

  Alt 30. Apr 2006, 00:07
Hallo,

ich bin gerade dabei einen kleinen Mediaplayer für mich zu programmieren. Dabei nutze ich die bass.dll. Nun zum Problem: ich möchte bei einem Song mit der TrackBar die Position setzen, aber das funktioniert bei mir leider nicht. Folgender Code zeigt, wie ich momentan mit der TrackBar arbeite (vereinfacht):
Delphi-Quellcode:
//zu Beginn:
TrackBar.Max:=0;
TrackBar.Position:=0;

//beim öffnen einer Datei (nach dem zuweisen von Channel):
TrackBar.Max:=GetSetSoundInfo('GetLength');

function TForm1.GetSetSoundInfo(Info: String): Int64;
var
 MilliSec: Integer;
 FloatPos: Float;

begin
 If Info = 'GetLengththen FloatPos:=BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel))
 Else If Info = 'GetPositionthen FloatPos:=BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetPosition(Channel))
 Else Result:=BASS_ChannelSeconds2Bytes(Channel, TrackBar.Position);
 If (Info = 'GetLength') or (Info = 'GetPosition') then
  begin
   MilliSec:=Trunc(1000 * FloatPos);
   If MilliSec < 0 then MilliSec:=0;
   Result:=MilliSec;
  end;
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
  TrackBar.Position:=GetSetSoundInfo('GetPosition');
end;

procedure TForm1.TrackBarChange(Sender: TObject);
begin
  BASS_ChannelSetPosition(Channel, GetSetSoundInfo('SetPosition'));
end;

end.
Wenn ich mit der Maus den Slider der TrackBar ändern will, springt er immer wieder zu der Position von davor zurück. Ich weis nicht warum das so ist. Kann mir da jemand helfen?

Als Anhang habe ich mal den noch nicht fertigen Player mit dem Problem.

Gruß
Mazel
Angehängte Dateien
Dateityp: zip player_137.zip (415,2 KB, 29x aufgerufen)
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat