Norbert Eder
Erfahrenes Mitglied
So, ausnahmsweise auch mal von mir eine Frage *g*.
Ich verwende die AudioVideoPlayback.dll aus dem DirectX 9 SDK. Das Abspielen von Videos funktioniert damit ansich recht gut, allerdings gibts doch (wie könnte es anders sein) ein Problem:
Das Video wird gestartet und abgespielt, danach wird ein anderes Video geladen und sollte auch abgespielt werden. Tut es auf dem Entwicklungsrechner auch, auf "sauberen" Systemen gibt's aber nur einen schwarzen Schirm.
Ich machte mich auf die Suche und fand heraus, dass es unter Umständen ein Problem mit der Audio-Instanz (welches die Video-Instanz ja besitzt) geben könnte. Dies ist nicht der Fall. Vielmehr ist mir aufgefallen, dass da ein ActiveMovie Prozess gestartet wird, der anscheinend weiterläuft und selbst beim null-setzen des Video-Objektes nicht gekillt wird. Dieser war zwar in der Taskliste der Testmaschinen nicht zu sehen, wollten aber beim Herunterfahren abgeschossen werden -> WTF?
Nun, wie arbeite ich damit? Ganz einfach:
Im Ending-Event wird das Object vom Typ Video auf null gesetzt. Im Internet ist es ständig mit Dispose() zu finden, was erstens nicht sauber ist und zweitens auch gar nicht funktioniert.
Hat hier jemand eine Idee woran das liegen könnte? Mir gehen schön langsam echt die Ideen aus.
PS: Ich verwende die letzte Version vom DirectX SDK VOR der aktuellen Version (diese teste ich gerade aus, scheint aber das gleiche Problem zu haben).
PPSS: Bitte kein Tipp in dem mir beschrieben wird, dass ich DirectShow verwenden soll. DirectShow ist mit dem DirectX October SDK deprecated.
Ich verwende die AudioVideoPlayback.dll aus dem DirectX 9 SDK. Das Abspielen von Videos funktioniert damit ansich recht gut, allerdings gibts doch (wie könnte es anders sein) ein Problem:
Das Video wird gestartet und abgespielt, danach wird ein anderes Video geladen und sollte auch abgespielt werden. Tut es auf dem Entwicklungsrechner auch, auf "sauberen" Systemen gibt's aber nur einen schwarzen Schirm.
Ich machte mich auf die Suche und fand heraus, dass es unter Umständen ein Problem mit der Audio-Instanz (welches die Video-Instanz ja besitzt) geben könnte. Dies ist nicht der Fall. Vielmehr ist mir aufgefallen, dass da ein ActiveMovie Prozess gestartet wird, der anscheinend weiterläuft und selbst beim null-setzen des Video-Objektes nicht gekillt wird. Dieser war zwar in der Taskliste der Testmaschinen nicht zu sehen, wollten aber beim Herunterfahren abgeschossen werden -> WTF?
Nun, wie arbeite ich damit? Ganz einfach:
Code:
Video v = new Video(videoFilename);
v.Ending += new ... // Event halt
v.Start();
Hat hier jemand eine Idee woran das liegen könnte? Mir gehen schön langsam echt die Ideen aus.
PS: Ich verwende die letzte Version vom DirectX SDK VOR der aktuellen Version (diese teste ich gerade aus, scheint aber das gleiche Problem zu haben).
PPSS: Bitte kein Tipp in dem mir beschrieben wird, dass ich DirectShow verwenden soll. DirectShow ist mit dem DirectX October SDK deprecated.