![]() |
Problem mit Abspielen von Song, außerhalb der Playlist
Hallo!
Ich habe ein Problem mit dem Abspielen von Audiodateien (MP3,WAV,CDA) mit dem TMediaPlayer von Delphi; Alle Dateien aus der PlayList spielt er ohne Probleme ab. Der Player spielt zwar jede Datei ab, wenn ich den (selbsterstellten) 'Öffnen'-Button drücke (hab ich einprogrammiert, dass er startet, sobald eine Datei geöffnet wurde). Allerdings spielt er nicht, wenn ich die geladene Datei einmal gestoppt habe, und dann noch mal auf Play drücke. Dann zeigt er stattdessen folgende Meldung an:
Delphi-Quellcode:
Weiß hier zufällig jemand, wie ich einerseits einen Song aus der PlayList mit dem Play-Button, und andererseits einen gerade neu geladenen Song (nicht gleichzeitig, aber 'hintereinander') abspielen kann?
---------------------------
Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project1.exe ist eine Exception der Klasse EStringListError aufgetreten. Meldung: 'Listenindex überschreitet das Maximum (-1)'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. Dank im Vorraus! DelphiUser7 |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
[LuckieImitation]Meinst du das ich hier eine Glaskugel stehen habe, in der ich deinen Source sehe?[/LuckieImitation]
:roll: :arrow: Ein wenig Source wäre nicht schlecht. ;) Ich würde nach dem öffnen den Filename setzen und dann per PlayButton das geladene Lied abspielen. Chris |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
So, hier ist die Source für meinen Play-Button und meinen Öffnen-Button;
Play-Button:
Delphi-Quellcode:
Öffnen-Button:
procedure TForm1.Play1Click(Sender: TObject);
begin If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close; Mediaplayer1.FileName := PlayList1.Items.Strings[PlayList1.ItemIndex]; SongPanel.Caption := Mediaplayer1.FileName; SongPanel.Width := Mediaplayer1.Open; Mediaplayer1.Play; Timer1.Enabled := True; begin Mediaplayer1.Open; Mediaplayer1.Play; Mediaplayer1.FileName := FileLoad1.FileName; Timer1.Enabled := True; end; end;
Delphi-Quellcode:
Gruss
procedure TForm1.dateioeffnen1Click(Sender: TObject);
begin with fileLoad1 do begin Filter := 'Mp3-Files(*.mp3)|*.mp3|Wav-Files(*.wav)|*.wav|MIDI-Files(*.mid)|*.mid'; end; if fileLoad1.Execute then begin mediaplayer1.FileName := fileLoad1.FileName; SongPanel.Caption := mediaplayer1.FileName; mediaplayer1.open; mediaplayer1.Play; Stunden:=0; Minuten:=0; Sekunden:=0; Timer1.Enabled := True; end; end; DelphiUser7 |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Moin DelhiUser,
wenn ich mal die Fehlermeldung und Deinen Source verbinde, komme ich zu dem Schluss, dass beim erneuten Drücken Deines Play Buttons kein Eintrag in der Playlist (ListBox) ausgewählt ist, weil dann ItemIndex = -1 ist. [EDIT] Also solltest Du immer vorher prüfen, ob denn überhaupt noch ein Eintrag ausgewählt ist. [/EDIT] |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Hallo!
Das soll ja auch gar nicht der Fall sein; Ich will ja den gewählten Track (über den 'Öffnen-Button' gewählt) abspielen, und nicht irgendeinen aus der PlayList, falls eine erstellt und geladen wurde. Natürlich sollte letzteres auch noch möglich sein, nachdem dieser Fehler hier behoben wurde; Gruss DelphiUser7 P.S.: Bei WinAmp ist ja folgendes der Fall: Wenn man eine Datei über den 'Öffnen'-Button lädt, dann wird automatisch eine neue PlayList erstellt; lädt man dann aber über den Öffnen-Button noch eine zweite Datei, so wird die erste Datei (und damit die 'automatisch' erstellte PlayList) gelöscht, und mit der zweiten geladenen Datei geschieht nun das, was vorher mit der ersten Datei passiert ist(PlayList erstellt...); |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Moin DelphiUser,
wenn das nicht der Fall sein soll, solltest Du mal etwas verschwenderischer mit begin/end umgehen ;-) So steht es bei Dir:
Delphi-Quellcode:
// if Open then Close. Mehr nicht.
If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close; // In jedem Falle wird versucht diesen Eintrag zu lesen, und das führt zu dem Fehler Mediaplayer1.FileName := PlayList1.Items.Strings[PlayList1.ItemIndex]; SongPanel.Caption := Mediaplayer1.FileName; SongPanel.Width := Mediaplayer1.Open; Mediaplayer1.Play; Timer1.Enabled := True; begin Mediaplayer1.Open; Mediaplayer1.Play; Mediaplayer1.FileName := FileLoad1.FileName; Timer1.Enabled := True; end; end; |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Hier noch mal zur Kontrolle: Der bereinigte Quelltext von 'Play-Button':
Delphi-Quellcode:
;
procedure TForm1.Play1Click(Sender: TObject);
begin If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close; begin Mediaplayer1.FileName := PlayList1.Items.String [PlayList1.ItemIndex]; SongPanel.Caption := Mediaplayer1.FileName; Mediaplayer1.Open; Mediaplayer1.Play; Timer1.Enabled := True; end; begin Mediaplayer1.Open; Mediaplayer1.Play; Mediaplayer1.FileName := FileLoad1.FileName; Timer1.Enabled := True; end; end; Könntest du vielleicht mal gucken, ob da nicht irgendwo noch ein begin und/oder end fehlt, denn mit diesem meiner Meinung nach bereinigten Quelltext tritt der Fehler immer noch auf...!! :x Gruss DelphiUser7 |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Moin DelphiUser,
so wie Du es jetzt geschrieben hast steht zwar einmal begin und einmal end mehr drin als vorher, allerdings so, dass sich der Programmablauf nicht im geringsten geändert hat. Jetzt wo ich es mir noch einmal ansehe, stelle ich fest, dass ich das ursprünglich nicht richtig gesehen hatte. Das Problem war kein fehlendes begin/end. Du benutzt in jedem Falle PlayList1.ItemIndex, was ja nicht sein darf. Ich habe jetzt mal angenommen, dass für den Fall, dass kein Titel aus der Playlist ausgewählt wurde FileLoad1.Filename einen gültigen Dateinamen enthält
Delphi-Quellcode:
procedure TForm1.Play1Click(Sender: TObject);
begin If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close; if Playlist.ItemIndex = -1 then begin Mediaplayer1.FileName := PlayList1.Items.String [PlayList1.ItemIndex] end else begin Mediaplayer1.FileName := FileLoad1.FileName; end; SongPanel.Caption := Mediaplayer1.FileName; Mediaplayer1.Open; Mediaplayer1.Play; Timer1.Enabled := True; end; end; |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Hallo!
Danke, es funktioniert, aber du hast die beiden Anweisungen, für das Öffnen einer Datei von der PlayList bzw. per 'Öffnen'-Button vertauscht. Das hab ich natürlich gleich geändert; Der (endgültig bereinigte) Quelltext lautet:
Delphi-Quellcode:
Gruss
procedure TForm1.Play1Click(Sender: TObject);
begin If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close; If PlayList1.ItemIndex = -1 then begin Mediaplayer1.FileName := FileLoad1.FileName; {Datei von FileLoad1} end else begin Mediaplayer1.FileName := PlayList1.Items.Strings[PlayList1.ItemIndex]; {Datei von PlayList} end; SongPanel.Caption := Mediaplayer1.FileName; Mediaplayer1.Open; Mediaplayer1.Play; Timer1.Enabled := True; end; DelphiUser7 |
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Moin DelphUser,
Zitat:
|
Re: Problem mit Abspielen von Song, außerhalb der Playlist
Hallo, an den Super-Mod!
Könntest du malin der Kategorie 'Multimedia' unter dem Eintrag 'Inhalt von audiocd in listbox laden und abspielen' schauen; (mit 'Inhalt sind die Tracks gemeint'); Gruss DelphiUser7 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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