![]() |
"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:
Wie man sieht, soll er einfach mal alle Tracks nacheinander in der PlayList abspielen, was er aber nicht tut.
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; 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... |
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.
|
Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
Rufst du auch vor jedem neuen Lied
Delphi-Quellcode:
auf?
MediaPlayer1.Open;
|
Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
Oh jemine... danke Luckie!! Es muss natürlich
Delphi-Quellcode:
heißen..
MediaPlayer1.Play;
@ Matze: Habe jetzt
Delphi-Quellcode:
eingefügt und habe dann dies:
MediaPlayer1.Open;
Delphi-Quellcode:
Das hat dann fehlerfrei funktioniert, aber fragt mich nicht, wieso..... Kann das sein, dass er unbedingt
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;
Delphi-Quellcode:
braucht?
ListBox1.Items.Strings[fIndex];
|
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??? |
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... |
Re: "Kein MCI-Gerät geöffnet" beim TMediaPlayer st
@ Jarmen_Kell:
Funktioniert einwand- und fehlerfrei, dankeschön! Nur heißt es
Delphi-Quellcode:
weil er somit den aktiven, geladenen Track anspricht. Beim MediaPlayer1.TrackLength muss auch eine Tracknummer mit übergegeben werden.
MediaPlayer1.Length;
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