![]() |
Next/Back
Hi,
ich möchte ein Playlist proggen! Nur wie machet man die next/back-Fubktion? Eher gesagt: Wie gehe ich von dem Item, was gerade bagespielt wird/wurde weiter oder zurück? |
Re: Next/Back
Hi Nils,
stell die Playlist in einer Liste zusammen, beim Klick auf Play speicherst du ab welches Element gerade gespielt wird. Sobald auf Next geklickt wird, gehst du ein Element in der Liste weiter. Sobald du am Ende der Liste angelangt bist, einfach den Counter auf 0 setzen. Greetz alcaeus |
Re: Next/Back
Nur wie gehe ich zum nexten Item?
|
Re: Next/Back
Nils,
ich will mal ehrlich sein. Du solltest imstande sein, auch etwas selbst zu machen. Denk doch einfach mal nach: Um das Abspielen zu starten, brauchst du den Pfad. Also koennte man doch eine Liste mit Pfaden zu MP3, WAV- oder sonstwelchen Dateien erstellen. Sobald nun auf Next geklickt wird, stoppst du das Abspielen des derzeitigen Liedes, holst dir den naechsten Pfad aus der Liste und startest das Abspielen des neuen Songs. Sowas sollte eigentlich nicht so schwer sein :roll: Greetz alcaeus |
Re: Next/Back
Aus was besteht deine Playlist? Einem einfachen Array mit Dateinamen, oder was?
alcaeus hat doch eigentlich alles gesagt. Du hast eine Variable mit dem Index des aktuellen Lieds. Für das nächste erhöhst du den Index und fragst dann den Dateinamen ab. Voher prüfst du ob der Index das letzte Lied übersprungen hat und setzt ihn auf 0 fürs erste. Bei der "Zurück"-Funktion dann nach dem gleichen Schema. MfG Pr0g |
Re: Next/Back
Habs jetzt!
Delphi-Quellcode:
Kann man das in diesem Code prüfen ob es hinten angekommen ist?
procedure TFormPlayer.Image7Click(Sender: TObject);
var i: integer; begin BASS_ChannelPause(channel); position := 0; Playlist.ItemIndex:= i; i := playlist.ItemIndex; i:= i+1; Channel := BASS_StreamCreateFile(FALSE, PChar(playlist.items[i]), 0, 0, 0); if i >= 0 then BASS_StreamPlay(Channel, False, 0); end; |
Re: Next/Back
Zitat:
|
Re: Next/Back
Hi Nils,
so sollte es funktionieren:
Delphi-Quellcode:
Zur Erklaerung:
procedure TFormPlayer.Image7Click(Sender: TObject);
var i: integer; begin BASS_ChannelPause(channel); position := 0; Playlist.ItemIndex:= (PlayList.ItemIndex + 1) mod PlayList.Items.Count; Channel := BASS_StreamCreateFile(FALSE, PChar(playlist.items[Playlist.ItemIndex]), 0, 0, 0); if i >= 0 then BASS_StreamPlay(Channel, False, 0); end; Diese Zeile
Delphi-Quellcode:
inkrementiert zuerst ItemIndex, und weisst diesem anschliessend den Rest aus der Division durch die Anzahl Elemente zu. Der Rueckgabewert ist naemlich >= 0 aber kleiner als PlayList.Items.Count. Somit wirst du nie eine AV erhalten.
Playlist.ItemIndex:= (PlayList.ItemIndex + 1) mod PlayList.Items.Count;
Greetz alcaeus [add]Werd ich in den Credits von deinem Player vermerkt? Schliesslich stammt ja fast schon der halbe Code von mir :mrgreen:[/add] |
Re: Next/Back
Wie macht man eine Zeitangabe und Lieddauer eigentlich?
|
Re: Next/Back
Hi!
Neue Frage --> Neuer Thrad Btw: Schon danach gesucht? Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 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