Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi "Kein MCI-Gerät geöffnet" beim TMediaPlayer statt Play ...? (https://www.delphipraxis.net/43097-kein-mci-geraet-geoeffnet-beim-tmediaplayer-statt-play.html)

DymonD 29. Mär 2005 01:56


"Kein MCI-Gerät geöffnet" beim TMediaPlayer statt
 
Hi,
Ich habe ein kleines Problemchen. Ich wollte mal - wie so viele andere auch - einen kleinen und feinen MediaPlayer programmieren, mit Playlist, sodass man den auch ohne Installation einfach mal starten kann. Mein Problem ist jetzt dabei: Wenn ich auf Play klicke, kommt die allgemein bekannte Fehlermeldung "Kein MCI-Gerät geöffnet.".
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); // Button1 = Play
var
  fIndex: integer;
begin
if ListBox1.Items.Count > 0 then begin
  for fIndex := 0 to ListBox1.Items.Count - 1 do begin
    MediaPlayer1.FileName := ListBox1.Items.ValueFromIndex[fIndex];
    MediaPlayer1.Stop;
  end;
end;
end;
Wie man sieht, soll er einfach mal alle Tracks nacheinander in der PlayList abspielen, was er aber nicht tut.
Ich weiß, dass es schon einmal funktioniert hat, denn ich habe es schon einmal programmiert, bloß ich habe jetzt den Code verloren... :lol:
Für jede Antwort bin ich dankbar.
Danke schonmal im Voraus...

Luckie 29. Mär 2005 02:10

Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
 
Und wo wird die Methode zum Abspielen aufgerufen? Du weißt eine Datei zu und sagst ihm dann er soll sofort anhalten.

Matze 29. Mär 2005 02:15

Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
 
Rufst du auch vor jedem neuen Lied

Delphi-Quellcode:
MediaPlayer1.Open;
auf?

DymonD 29. Mär 2005 15:16

Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
 
Oh jemine... danke Luckie!! Es muss natürlich
Delphi-Quellcode:
MediaPlayer1.Play;
heißen..

@ Matze:
Habe jetzt
Delphi-Quellcode:
MediaPlayer1.Open;
eingefügt und habe dann dies:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fIndex: integer;
begin
if ListBox1.Items.Count > 0 then begin
  for fIndex := 0 to ListBox1.Items.Count - 1 do begin
    MediaPlayer1.FileName := ListBox1.Items.Strings[fIndex];
    MediaPlayer1.Open;
    MediaPlayer1.Play;
  end;
end;
end;
Das hat dann fehlerfrei funktioniert, aber fragt mich nicht, wieso..... Kann das sein, dass er unbedingt
Delphi-Quellcode:
ListBox1.Items.Strings[fIndex];
braucht?

DymonD 29. Mär 2005 15:32

Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
 
Nachtrag:
Somit habe ich eine dumme Schleife, und zwar überspringt er einfach sofort alle Tracks und spielt gleich den letzten Track ab (zu spät gemerkt). Wo kann ich ihm aber sagen, spiele den ab und dann den und dann den? Ich habe versucht, ein Timer einzubauen, der dann die Posotion mit der Länge vergleicht, aber der Timer muss jede Millisekunde vergleichen und das frisst Ressourcen. Ansonsten gibt es da kein OnStop, sowie ich weiß...
Hat einer eine Idee???

Jarmen_Kell 29. Mär 2005 15:37

Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
 
Mach doch den Timer-Intervall nachdem du das Lied geöffnet hast auf MediaPlayer.TrackLength oder so ( hab den genauen befehl nicht )
Dann machste Play
Und wenn der fertig "getimt" ist, öffnet er das nächste und dann gehts wieder los...

DymonD 29. Mär 2005 16:01

Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
 
@ Jarmen_Kell:
Funktioniert einwand- und fehlerfrei, dankeschön!
Nur heißt es
Delphi-Quellcode:
MediaPlayer1.Length;
weil er somit den aktiven, geladenen Track anspricht. Beim MediaPlayer1.TrackLength muss auch eine Tracknummer mit übergegeben werden.
Man lernt ja auch was dazu ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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