Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mediaplayer - 'Kein MCI-Gerät geöffnet' (https://www.delphipraxis.net/23104-mediaplayer-kein-mci-geraet-geoeffnet.html)

WeTec 28. Mai 2004 18:43


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:
    If Mediaplayer1.Mode = mpPlaying then
    begin
      with MediaPlayer1 do
      begin
        Notify := False;
        Stop;
    //showmessage('Mediaplayer wird geschlossen');
        Close;
      end;
    end;
das ganze soll beim aufrufen einen endlos-videoclip beenden.

also echt seltensam.
würde mich über einen Tip das Problem ohne Message zu lösen freuen. danke

Kernel32.DLL 28. Mai 2004 19:23

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:

WeTec 28. Mai 2004 19:41

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
ok, vieleicht sollte ich noch sagen das ich ein OnNotify-Ereigniss erstellt habe:

Delphi-Quellcode:
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
    If MediaPlayer1.Notify = True then MediaPlayer1.Play
    else MediaPlayer1.Stop;
end;
quasi als Endlosschleife. Wenn ich das jedoch auskommentiere kommt auch keine fehlermeldung.

Die Schleife wird durch folgenden Code gestartet:

Delphi-Quellcode:
var
  Dateiname: String;

...

    with MediaPlayer1 do
    begin
      FileName := Dateiname;
      Open;
      Play;
      Notify := True;
    end;

WeTec 7. Jun 2004 13:50

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

FastJack2 9. Jun 2004 16:27

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
und wenn du statt der message nen sleep(10); reinhängst ?

greetz
-FastJack2

WeTec 11. Jun 2004 21:14

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:
    If Mediaplayer1.Mode = mpPlaying then
das schreibe:

Code:
    If Mediaplayer1.Mode = mpOpen then
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).
(der MP 'playt' zwar aber ist geschlossen???? :gruebel: )

danke trotzdem für den Tip
bin für alles offen

WeTec

WeTec 18. Aug 2004 22:16

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
[OT]
Einen Herzlichen, Daniel! :thumb:
[/OT]

Greez, WeTec

gmarts 18. Aug 2004 22:45

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
AutoRewind auf True gestellt?

WeTec 19. Aug 2004 22:30

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
nein, eigentlich nicht. Aber wo und warum sollte ich das auf true setzen?

gmarts 20. Aug 2004 10:36

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

WeTec 1. Sep 2004 15:39

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.

WeTec 1. Sep 2004 15:53

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

gmarts 1. Sep 2004 17:27

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:
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin

    If mediaplayer1.Mode=mpopen then
    begin
    if MediaPlayer1.Notify = True then MediaPlayer1.Play
    else MediaPlayer1.Stop;
    end;

end;
MfG GM

WeTec 6. Sep 2004 22:09

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
Moment, Moment!
du schreibst:
Zitat:

OnNotify wird zwar beim Stop ausgelöst, scheinbar aber erst nach dem close abgearbeitet.
Demnach bringt der eben gepostete Code aber nix mehr, weil ja wie gesagt der MPlayer erst geschlossen wird und dann das OnNotify abgearbeitet wird.
Code:
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin

    If mediaplayer1.Mode=mpopen then
    ...
und genau das ist bei mir auch passiert (mit deinem Code).

Grüße, WeTec

WeTec 26. Jan 2005 15:35

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
Hat denn keiner ne Idee?

Flax 27. Jan 2005 10:29

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:
    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;
:!: Der MediaPlayer ist auch nicht so dolle :P

Flax 27. Jan 2005 10:51

Re: Mediaplayer - 'Kein MCI-Gerät geöffnet'
 
Hab mir auch beispiel angeschaut.

Das Problem ist bei:

Delphi-Quellcode:
..

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;
Lösung:
- anderen Player benutzen!
- oder einen Thread schreiben der das Kontrolliert!
- weiter versuchen es doch zum laufen zu bekommen

WeTec 27. Jan 2005 17:32

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

Flax 28. Jan 2005 11:23

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 00:53 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