PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Video-abspielen mit AirectAnimation-wie Fenster schliessen?


beenal
18.02.2002, 09:48
Hi leude!
vorerst mal danke für alle antworten auf meine vorigen postings, da wollte ich powerdvd von meinem programm aus starten und nach ende des filmes wieder schliessen.
habs jetzt aber anders gelöst, und zwar mit DirectAnimation(DirectX). klappt auch scho ganz gut, aber habe noch ein problem: wie lässt sich dieses Active-Movie Fenster schliessen wenn der film zuende gespielt hat???

hier mal meinen code

Dim Audio As IBasicAudio
Dim FileName As String
Dim MediaControl As IMediaControl
Dim MediaPosition As IMediaPosition
Dim MediaEvent As IMediaEvent
Dim VideoWindow As IVideoWindow

---------ausschnitt aus filmstart-funktion--------

FileName = "C:\test.avi"
CleanUp ´falls Video-Kontrollen geladen sind, cleanen und neuinitialisieren
´Video-Kontrollen schreiben
Set MediaControl = New FilgraphManager
Set Audio = MediaControl
Set MediaPosition = MediaControl
Set VideoWindow = MediaControl

MediaControl.RenderFile FileName ´Versucht Video zu rendern
VideoWindow.WindowStyle = WS_MAXIMIZE
VideoWindow.SetWindowPosition 0, 0, Screen.Width, Screen.Height
VideoWindow.HideCursor (True)
MediaControl.Run
MediaPosition.CurrentPosition = 0

Do
If CLng(MediaPosition.CurrentPosition) = CLng(MediaPosition.Duration) Then ´check ob video fertig gespielt wurde
Dim wHandle As Long ´Schliesst Video-Fenster
Dim R As Long
wHandle = FindWindow(vbNullString, "ActiveMovie Window")
If wHandle <> 0 Then
R = PostMessage(wHandle, &H10, 0&, 0&)
If R = 0 Then MsgBox &quot;Fehler !&quot;
Else
MsgBox &quot;ActiveMovie ist nicht offen !&quot;
End If
CleanUp
Exit Do
End If
Loop




Function CleanUp() &acute;Beseitigt Video-Überbleibsel
Set MediaControl = Nothing
Set Audio = Nothing
Set MediaPosition = Nothing
End Function



wie ihr seht versuche ich den text des video-fensters zu suchen (ActiveMovie Window) und wenn der film fertig ist, dieses fenster zu schliessen...
aber es gäbe sicher auch nen besseren code dafür (auf jeden fall klappts nicht immer so, manchmal erscheint das fenster plötzlich wieder...) gäbe es nicht schon so einen befehl von diesem directanimation um dieses movie-fenster zu schliessen???

hilfe jeglicher art erwünscht...und es eilt mächtig, wäre daher sehr dankbar um ne schnelle antwort.... :]

grüsse
beenal


cYrus
18.02.2002, 22:09
es gibt sonst den MediaPlayer als Control, dann müsstest du nur noch das Form schliessen und weg is alles..

so long
cYrus

beenal
18.02.2002, 22:35
hab&acute;s just in diesem moment herausgefunden...manno war ich ein depp :rolleyes:

für alle dies interessiert...
musste nur noch
Set VideoWindow = Nothing
in der function cleanup() hinzufügen...und den schrott
Dim wHandle As Long &acute;Schliesst Video-Fenster
Dim R As Long
wHandle = FindWindow(vbNullString, &quot;ActiveMovie Window&quot;)
If wHandle <> 0 Then
R = PostMessage(wHandle, &H10, 0&, 0&)
If R = 0 Then MsgBox &quot;Fehler !&quot;
Else
MsgBox &quot;ActiveMovie ist nicht offen !&quot;
End If

weglassen...

anyway, danke für (allfällige) bemühungen, und auch dir cyrus, habs aber eben anders gelöst...

(manno, ich versteh die welt nicht mehr...immer sobald ich hier was poste finde ich gleich danach (habe mich seit dem posting heute mittag nicht mehr mit meinem problem befasst) die lösung...zum kot*en :D

cu
beenal

Mimo
18.02.2002, 23:58
*lach*

Jau, das kenn ich.

Wenn ich mal nicht weiterwßute, dann bin ich zum Kollegen gegangen und hab ihm mein genau Prob erklärt. Dann fiel mir selbst schon die Löung ein.

Da hab ich mir oft selbst weitergeholfen! ;-)

Gruss,
Mimo