AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Problem mit Abspielen von Song, außerhalb der Playlist
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Abspielen von Song, außerhalb der Playlist

Ein Thema von DelphiUser7 · begonnen am 31. Aug 2003 · letzter Beitrag vom 1. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#1

Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 17:48
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:
---------------------------
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.
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?

Dank im Vorraus!

DelphiUser7
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 17:54
[LuckieImitation]Meinst du das ich hier eine Glaskugel stehen habe, in der ich deinen Source sehe?[/LuckieImitation]


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
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#3

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 18:03
So, hier ist die Source für meinen Play-Button und meinen Öffnen-Button;
Play-Button:
Delphi-Quellcode:
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;
Öffnen-Button:
Delphi-Quellcode:
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;
Gruss
DelphiUser7
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 19:03
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]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#5

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 19:15
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...);
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 20:18
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#7

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 21:15
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...!!

Gruss
DelphiUser7
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 21:27
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#9

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 22:14
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:
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;
Gruss
DelphiUser7
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Problem mit Abspielen von Song, außerhalb der Playlist

  Alt 31. Aug 2003, 22:23
Moin DelphUser,

Zitat von DelphiUser7:
...aber du hast die beiden Anweisungen, für das Öffnen einer Datei von der PlayList bzw. per 'Öffnen'-Button vertauscht.
Stimmt
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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