JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=5e027fec9e2108692fe7a5f8d270872cMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Schließen von DIShow

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 26.08.2003, 12:06    Titel: Schließen von DIShow Antworten mit Zitat

Hallo,

ich habe mir grad nen kleinen Movieplayer geschrieben. Der startet im Vollbildmodus und spielt auch alle Windowsbekannten Dateiformate ab. Jetzt habe ich aber das Problem, dass der Film zu Ende ist, aber das Fenster bestehen bleibt. Beenden dieses Fensters geht dann nur gewaltsam per Taskmanager und dann stuerzt DShow natuerlich ab.

Woran kann das liegen? Ich habe bereits folgenden Code drinnen, der ja eigentlich den ganzen Prozess beenden sollte:



Code:

long evCode;
evCode = EC_COMPLETE;
pEvent->WaitForCompletion(NULL , &evCode);


Danke fuer da help Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 05.09.2003, 21:44    Titel: Antworten mit Zitat

Hi!

Bin heute wieder vom Frankreich-Urlaub zurück! Very Happy

Und hab auch gleich dir die Lösung mitgebracht! Smile

Code:

   pControl->Stop();
    pControl->Release();
   lpSeeking->Release();
   
   long evCode;
   evCode = EC_COMPLETE;
   pEvent->WaitForCompletion(NULL , &evCode);

    pEvent->Release();
    pGraph->Release();
    CoUninitialize();

_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 09:43    Titel: Antworten mit Zitat

Hi Millenium,

haev dich ja schon richtig vermisst Wink Dacht mir schon das da wer faul am Strand liegt. So wird des natuerlich nix mit den Spielen Wink Wink

Hey danke dir fuer den Ansatz. Ich probiers dann gleich ma aus. Aber jetzt bin ich erstma Urlaub bis Dienstag Wink

Danke.... Bye

EDIT: Hast du ne Loesung fuer ESC-Taste und Abbruch bereit. Angeblich sollte das ja direkt in den Eventhandler eingebunden werden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 10.09.2003, 21:32    Titel: Antworten mit Zitat

Hallo,

so endlich konnte ich das von Millenium mal ausprobieren, muss aber leider sagen, dass es nicht funktioniert. Das Fenster bleibt trotzdem bestehen..... leider. Mach ich was falsch?

Code:


// GRaphen laufen lassen
        hr = pControl->Run();
        if (SUCCEEDED(hr))
        {
            //pControl->Stop();
         //pControl->Release();
               
         // Warten bis Ende
            long evCode;
         evCode = EC_COMPLETE;
            pEvent->WaitForCompletion(NULL , &evCode);
         
                  pEvent->Release();
         pGraph->Release();
        }
     }
   CoUninitialize();



Waere super wenn jmd. was findet.... Das pControl hab ich auskommentiert, weils ja so gar nicht funktioniert....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 11:19    Titel: Antworten mit Zitat

Also bei mir ist das so:
Code:

        // DirectXMusic Objekte
      IGraphBuilder   *pGraph;
      IMediaControl   *pControl;
      IMediaSeeking   *lpSeeking;
      IMediaEventEx   *pEvent;
      IBaseFilter      **pSources;


Und wenn das Programm beendet wird:
Code:

   delete pSources;
   pControl->Stop();
                pControl->Release();
   lpSeeking->Release();
   
   long evCode;
   evCode = EC_COMPLETE;
   pEvent->WaitForCompletion(NULL , &evCode);

    pEvent->Release();
    pGraph->Release();
    CoUninitialize();


Und ich habe gesehen, dass du davon paar Sachen auskommentiert hast...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 11:39    Titel: Antworten mit Zitat

Hmmm ja. Die hab ich auskommentiert, weils so nicht funktioniert. Also den Seeker brauch ich nicht. Das is egal, deswegen hab ich ihn nicht reingenommen. Alle anderen hab ich auch, allerdings wenn ichs wie du mache, spielt er ja den Movie gar nicht erst ab, weil er ja vorher schon aufhoert?? Oder hab ich was uebersehen?

Das Problem ist, das Fenster was DShow erzeugt, loszuwerden. Bei dem Player, den du philip boeing gegeben hast (besser dem Code - so weit ich sehen kann) siehst du es ganz gut. Das IVideoWindow ist nicht mehr wegzukriegen nach dem abspielen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 12:05    Titel: Antworten mit Zitat

Ja, ich verwende ja auch einen ganz anderen Code für den Sound. Ich habe dafür extra mühsam eine Audioklasse geschrieben. Naja und da wird kein neues Fenster erzeugt und im moment kann sie auch gar keine Videos abspielen.

Ok war mein Fehler, du schreibst ja einen Movieplayer. Also bei meinem Programm kann man das Fenster ja einfach schließen. Schließt sich das Fenster nicht automatisch mit, wenn du dein Programm dann beenden lässt?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 12:24    Titel: Antworten mit Zitat

Hmm das mit dem Sound kenn ich. Kann nur Fmod empfehlen Wink

Nein leider schließt das nicht. Es bleibt am Ende des Files einfach stehen. Ich weiß nicht genau wie ich das Ding zerstoeren soll, weil ich dank GetFullScreen keinen Handle drauf habe Sad Und weils Fullscreen ist, kann ich es auch schwer schließen, per Hand. Taskmanager geht natuerlich, aber welchem User kann man das schon zumuten.

Hmmm. Dann werd ich was anderes finden muessen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 14:24    Titel: Antworten mit Zitat

Ok ich habs jetzt geschafft, dass es funktioniert. Das is ja wieder ne "Von hinten ueber die Brust ans Auge"-Aktion, die man da starten muss. Fuer ein einfaches schließen jedenfalls extrem kompliziert.

Trotzdem danke... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 15:49    Titel: Antworten mit Zitat

X-FILE hat Folgendes geschrieben:
Hmm das mit dem Sound kenn ich. Kann nur Fmod empfehlen Wink


Ich bin einer von denen, die alles selber machen müssen. Naja das ist nun mal meine Natur. Und wenn das ganze Projekt doch mal kommerziell werden sollte, dann will ich nicht so hohe Lizensgebühren zahlen müssen! Wink
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 17:14    Titel: Antworten mit Zitat

Zitat:

dann will ich nicht so hohe Lizensgebühren zahlen müssen!


ie nehmen Lizenzgebuehren bei Kommerz? Hab ich das ueberlesen?? Muss ich doch glatt ma kucken Wink
Spielst du denn mit DShow auch mp3 ab? Im Spiel? Wird das ned etwas unflexibel? Ich meine mit Playlists usw?

Nachtrag:

Hast recht. Hmmm ned so gut. Nich dass ich Kommerz anstrebe, aber ich weiß nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 11.09.2003, 18:08    Titel: Antworten mit Zitat

Ich weiß nicht, was daran unflexible ist. Ich hab keine Probleme mit DirectShow und es mag zwar laut fmod etwas langsamer sein, davon spüre ich aber nichts. Naja und wie gesagt, ich möchte unabhängig von solchen Sachen sein, die dann doch mal Geld kosten, vielleicht auch nicht kommerziell...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum