![]() |
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:
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.
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; Ich hoffe, ihr könnt mir helfen. Wenn ihr noch Infos braucht, sagt es einfach ;-) |
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. |
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; |
Re: Playstatus eines Liedes mit Trackbar
Hi,
Luckie hat in einer Textdatei
Code:
geschrieben.
hFileStream := BASS_StreamCreateFile(FALSE, @Filename[1], 0, 0, BASS_MP3_SETPOS
or BASS_STREAM_AUTOFREE); Zitat:
|
Re: Playstatus eines Liedes mit Trackbar
Was hat diese Frage mit der von Ultimator zu tun?
|
Re: Playstatus eines Liedes mit Trackbar
Ok dann kannst du mir ja in einer PN antworten.
|
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...... :| |
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 20:23 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