Hallo zusammen,
ich habe ein Problem mit einer ganz einfachen Form, mit einem Button und einer PictureBox. Ich möchte beim Drücken des Buttons in dieser Picturebox ein Video abspielen. Mit dem Code unten funktioniert das im Prinzip schon gut.
Das Problem ist: Ich verwende auf meinem PC zwei Bildschirme (erweiterter Desktop). Ich möchte das Fenster, auf dem das Video abgespielt wird, (ausschließlich) auf meinem zweiten Bildschirm verwenden, nicht am primären Monitor.
Aber wenn ich den Button drücke und das Video dort abspielen lasse, wird zwar der Ton wiedergegeben, jedoch das Video bleibt schwarz bzw. zeigt nur den ersten Frame.
Das Problem ist auf anderen PCs reproduzierbar, auch als Release kompiliert.
Habt ihr da eine Idee, woran das liegen kann? DirectX scheint ansonsten eigentlich für den Zweck ganz gut geeignet zu sein!?
LG
ich habe ein Problem mit einer ganz einfachen Form, mit einem Button und einer PictureBox. Ich möchte beim Drücken des Buttons in dieser Picturebox ein Video abspielen. Mit dem Code unten funktioniert das im Prinzip schon gut.
Das Problem ist: Ich verwende auf meinem PC zwei Bildschirme (erweiterter Desktop). Ich möchte das Fenster, auf dem das Video abgespielt wird, (ausschließlich) auf meinem zweiten Bildschirm verwenden, nicht am primären Monitor.
Aber wenn ich den Button drücke und das Video dort abspielen lasse, wird zwar der Ton wiedergegeben, jedoch das Video bleibt schwarz bzw. zeigt nur den ersten Frame.
Das Problem ist auf anderen PCs reproduzierbar, auch als Release kompiliert.
Habt ihr da eine Idee, woran das liegen kann? DirectX scheint ansonsten eigentlich für den Zweck ganz gut geeignet zu sein!?
LG
VB.NET-Quellcode
- Imports Microsoft.DirectX.AudioVideoPlayback
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- PlayVideo()
- End Sub
- Private Sub PlayVideo()
- ' file to be loaded
- Using video0 As New Video("C:\Temp\Video.mp4")
- ' where to show video
- video0.Owner = PictureBox1
- ' play
- video0.Play()
- ' wait till played
- Do
- Sleep(1)
- Application.DoEvents()
- Loop Until video0.CurrentPosition = video0.Duration
- video0.Dispose()
- End Using
- End Sub