![]() |
Mediaplayer - 'Kein MCI-Gerät geöffnet'
Tachchen!
ich hab da ein Problem mit dem Mediaplayer. und zwar wird beim stoppen und schließen des Mediaplayers eine Fehlermeldung gegeben, welche lautet: 'Kein MCI-Gerät geöffnet'. wenn ich jedoch die Message dazwischen schiebe kommt kein Fehler.
Delphi-Quellcode:
das ganze soll beim aufrufen einen endlos-videoclip beenden.
If Mediaplayer1.Mode = mpPlaying then
begin with MediaPlayer1 do begin Notify := False; Stop; //showmessage('Mediaplayer wird geschlossen'); Close; end; end; also echt seltensam. würde mich über einen Tip das Problem ohne Message zu lösen freuen. danke |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Hmm...
Vielleicht solltest mal genauer beschreiben, unter welchen Umständen es nicht funktioniert. Bei mir (Delphi 7 Personal) läufts nämlich einwandfrei :spin: |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
ok, vieleicht sollte ich noch sagen das ich ein OnNotify-Ereigniss erstellt habe:
Delphi-Quellcode:
quasi als Endlosschleife. Wenn ich das jedoch auskommentiere kommt auch keine fehlermeldung.
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin If MediaPlayer1.Notify = True then MediaPlayer1.Play else MediaPlayer1.Stop; end; Die Schleife wird durch folgenden Code gestartet:
Delphi-Quellcode:
var
Dateiname: String; ... with MediaPlayer1 do begin FileName := Dateiname; Open; Play; Notify := True; end; |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
vieleicht könnte man ne schleife reinhängen? :gruebel:
so als zeitverzögerung, hmmm.. ach ja, einen herzlichen, DP! und danke den vielen antworten, die ihr mir bis jetzt geben konntet. :-D Gruß, WeTec |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
und wenn du statt der message nen sleep(10); reinhängst ?
greetz -FastJack2 |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Tja, es funktioniert selbst mit einer Verzögerung von 1000ms (!!) nicht.
Das Prog bleibt eine Sekunde lang stehen und dan kommt die Exception. ach ja und wenn ich statt dem:
Code:
das schreibe:
If Mediaplayer1.Mode = mpPlaying then
Code:
Dann bleibt das Prog hängen weil er gar nicht erst zum schließen des Mediaplayers kommt. Und zweimal den MP öffnen verkraftet er nicht (ist ja auch klar).
If Mediaplayer1.Mode = mpOpen then
(der MP 'playt' zwar aber ist geschlossen???? :gruebel: ) danke trotzdem für den Tip bin für alles offen WeTec |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
[OT]
Einen Herzlichen, Daniel! :thumb: [/OT] Greez, WeTec |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
AutoRewind auf True gestellt?
|
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
nein, eigentlich nicht. Aber wo und warum sollte ich das auf true setzen?
|
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Bin gerade nicht ganz sicher, aber du must den Clip "zurückspulen" bevor du ihn erneut wiedergeben kannst.
Geht auch mit mediaplayer.rewind |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
hm, bringt auch nix. :(
aber brauch ich ja eigentlich nicht, da ich ja mit Notify eine Endlosschleife habe. und wenn der Clip fertig abgespielt ist, stopt er und spielt neu ab. |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Liste der Anhänge anzeigen (Anzahl: 1)
anbei mal ein kleines testprog, um das ganze zu verdeutlichen.
(siehe Problem oben^^) danke fürs angucken |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Habe mir gerade den Quelltext angeguckt.
Du stoppst den Mediaplayer, das OnNotify-Ereignis wird ausgelöst, welches den Player wieder zum Spielen/Anhalten bringt, doch dieser wird von dir nach dem Stop geschlossen. OnNotify wird zwar beim Stop ausgelöst, scheinbar aber erst nach dem close abgearbeitet. Deswegen die Fehlermeldung. So gehts:
Delphi-Quellcode:
MfG GM
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin If mediaplayer1.Mode=mpopen then begin if MediaPlayer1.Notify = True then MediaPlayer1.Play else MediaPlayer1.Stop; end; end; |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Moment, Moment!
du schreibst: Zitat:
Code:
und genau das ist bei mir auch passiert (mit deinem Code).
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin If mediaplayer1.Mode=mpopen then ... Grüße, WeTec |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Hat denn keiner ne Idee?
|
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
In ein Notify event ein Stop, Close oder sonst sowas einzubauen ist auch fraglich! Das könnte auch Probleme machen.
Vielleicht geht das?
Delphi-Quellcode:
:!: Der MediaPlayer ist auch nicht so dolle :P
If Mediaplayer1.Mode = mpPlaying then
begin with MediaPlayer1 do begin Notify := False; Stop; //showmessage('Mediaplayer wird geschlossen'); Application.ProcessMessages; // NEU Sleep(1); // NEU Application.ProcessMessages; // NEU Close; end; end; |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Hab mir auch beispiel angeschaut.
Das Problem ist bei:
Delphi-Quellcode:
Lösung:
..
procedure TForm1.FormCreate(Sender: TObject); begin with MediaPlayer1 do begin DeviceType := dtAVIVideo; FileName := 'ykohl.avi'; Open; //Play; // Nein ! Löst Problem aus hier! Das ist Mediaplayer nicht mehr richtig ansprechbar! Notify := True; end; end; .. procedure TForm1.MediaPlayer1Notify(Sender: TObject); begin MediaPlayer1.Rewind; MediaPlayer1.Notify := True; // Play löst das Problem aus. Danach ist der Player nicht mehr richtig ansprechbar per Schalter und // sonstigen Programmcode. MediaPlayer1.Play; // <- Problem end; - anderen Player benutzen! - oder einen Thread schreiben der das Kontrolliert! - weiter versuchen es doch zum laufen zu bekommen |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Jo, danke für die Antworten. :thumb:
ich hab letztens WinXP SP2 installiert, und als ich das progie wieder rausgekramt habe, hat es auf einmal funktioniert. hatte vorher kein SP2. vieleicht lag es ja daran. :stupid: gruß an alle DPler WeTec |
Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
Ja daas muss man wissen! Mit WinXP SP2 wird auch plötzlich ImageListen Darstellung verändert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 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