Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Playstatus eines Liedes mit Trackbar (https://www.delphipraxis.net/29049-playstatus-eines-liedes-mit-trackbar.html)

Ultimator 3. Sep 2004 08:43


Playstatus eines Liedes mit Trackbar
 
Hallo! :stupid:
Ich habe mich mal ein bisschen in die BASS-Welt eingearbeitet, und nun komm ich nicht weiter.
Ich möchte mit Hilfe einer Trackbar anzeigen, wie viel schon von einem Lied gespielt wurde (soll sich natürlich automatisch weiterbewegen ;-)), und möchte sie auch verschieben können, wegen vor- und zurückspulen. Jetzt finde aber einfach keine Lösung, vielleicht könnt ihr mir helfen... :pale:
Hier mal ein Ausschnitt Code:
Delphi-Quellcode:
var wo:integer;
  wozeit,trackzeit,tracklength:single;
begin
tracklength:=BASS_StreamGetLength(spielstream);
trackZeit:=BASS_ChannelBytes2Seconds(spielstream,tracklength);
wo:=BASS_ChannelGetPosition(spielstream);
wozeit:=BASS_ChannelBytes2Seconds(spielstream,wo);
end;
Tracklength ist die Länge des Liedes in Bytes, tracklength ist sie in Sekunden, wo ist die Position des Streams, an welcher Stelle er sich im Lied gerade befindet (wieder in Byte), und wozeit ist das ganze wieder in Sekunden.

Ich hoffe, ihr könnt mir helfen. Wenn ihr noch Infos braucht, sagt es einfach ;-)

Luckie 3. Sep 2004 10:02

Re: Playstatus eines Liedes mit Trackbar
 
Ich sehe dein Problm ehrlich gesagt nicht. Mir scheint, du musst nur etwas nachdenken. Frag in einm Timer ab wo du dich gerade befindest. Wie das geht, weißt du ja anscheinend. Dann setzt du da die Position einer Trackbar.

Bor und zurückbewegen in einem Lied? Einfach auf das OnChange der Trackbar reagieren und die Position neu setzten.

Ultimator 3. Sep 2004 10:42

Re: Playstatus eines Liedes mit Trackbar
 
Ich habs jetzt mit der JvtrackBar gelöst, weil nur die OnMouse-Events hat, und zwar so:
Delphi-Quellcode:
procedure TForm1.TrackBar1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Timer1.Enabled := false;      //Timer ausstellen
  BASS_ChannelPause(spielstream); //Lied anhalten
end;

procedure TForm1.TrackBar1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  BASS_ChannelSetPosition(spielstream, TrackBar1.Position); //Position setzen
  BASS_StreamPlay(spielstream, false, 0); //Lied wieder fortsetzen
  Timer1.Enabled := true;                //Timer wieder aktivieren
end;

Nils_13 26. Dez 2004 17:42

Re: Playstatus eines Liedes mit Trackbar
 
Hi,

Luckie hat in einer Textdatei
Code:
hFileStream := BASS_StreamCreateFile(FALSE, @Filename[1], 0, 0, BASS_MP3_SETPOS
    or BASS_STREAM_AUTOFREE);
geschrieben.
Zitat:

@FileName
was soll das sein, etwa einfach opendialog.filename oder etwas anderes?

Luckie 26. Dez 2004 18:25

Re: Playstatus eines Liedes mit Trackbar
 
Was hat diese Frage mit der von Ultimator zu tun?

Nils_13 26. Dez 2004 18:39

Re: Playstatus eines Liedes mit Trackbar
 
Ok dann kannst du mir ja in einer PN antworten.

padavan 26. Jan 2005 11:47

Re: Playstatus eines Liedes mit Trackbar
 
Zu der Sache mit dem OnChange-Ereignis der Trackbar. Ich denke nicht, dass so so einfach ist, denn:
wenn man die Trackbar.position mit der Bass-Liedlänge füttert, bekommt man quasi laufend dieses Ereignis. Also einfach mit der Maus drauflklicken und ziehen is nich.
Warum die Trackbar kein Mousedown und Mouseup-Ereignis hat habe ich noch nciht begriffen. Das wäre doch eigentlich des Rätsels Lösung?!

Mit dem Timer die Trackbar.position über die Bass-Liedlänge ansteuern und bei Mousedown dieses entkoppeln und in die andere Richtung dann mit der Trackbar.position dann die Bass-Liedposition vorgeben...... :|

Ultimator 26. Jan 2005 12:05

Re: Playstatus eines Liedes mit Trackbar
 
Aus genau diesem Grund habe ich dann auf die TJvTrackbar zurückgegriffen, weil eben die ein OnMouseDown/Up-Event hat ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz