Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Next/Back (https://www.delphipraxis.net/35673-next-back.html)

Nils_13 10. Dez 2004 15:17


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?

alcaeus 10. Dez 2004 15:33

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

Nils_13 10. Dez 2004 15:53

Re: Next/Back
 
Nur wie gehe ich zum nexten Item?

alcaeus 10. Dez 2004 16:03

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

Pr0g 10. Dez 2004 16:04

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

Nils_13 10. Dez 2004 16:19

Re: Next/Back
 
Habs jetzt!

Delphi-Quellcode:
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;
Kann man das in diesem Code prüfen ob es hinten angekommen ist?

jim_raynor 10. Dez 2004 16:23

Re: Next/Back
 
Zitat:

Zitat von Nils_13
Kann man das in diesem Code prüfen ob es hinten angekommen ist?

Ja, kann man. Und bevor du wieder fragst wie. Denke bissle nach. Ist eine If-Abfrage.

alcaeus 10. Dez 2004 16:23

Re: Next/Back
 
Hi Nils,

so sollte es funktionieren:
Delphi-Quellcode:
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;
Zur Erklaerung:
Diese Zeile
Delphi-Quellcode:
Playlist.ItemIndex:= (PlayList.ItemIndex + 1) mod PlayList.Items.Count;
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.

Greetz
alcaeus

[add]Werd ich in den Credits von deinem Player vermerkt? Schliesslich stammt ja fast schon der halbe Code von mir :mrgreen:[/add]

Nils_13 10. Dez 2004 16:47

Re: Next/Back
 
Wie macht man eine Zeitangabe und Lieddauer eigentlich?

fkerber 10. Dez 2004 16:48

Re: Next/Back
 
Hi!

Neue Frage --> Neuer Thrad

Btw: Schon danach gesucht?


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr.
Seite 1 von 2  1 2      

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