Zdravím Vás - formulář nepřetahuji, dokonce s ním ani nijak nemanipuluji. Pro iniciaci používám standardní postup: Mám to celé v samostatné třídě, u které si nejprve, v rámci konstruktoru vytvořím "promítací plátno":
Private Sub vytvorform(ByVal control As Form)
platno.BackColor = My.Settings.Obr_BgCol
platno.ShowInTaskbar = False
platno.FormBorderStyle = FormBorderStyle.None
platno.Opacity = 0
platno.Show()
platno.Bounds = control.Bounds()
obraz.Bounds = platno.Bounds
obraz.Dock = DockStyle.Fill
platno.Controls.Add(obraz)
End Sub
Jako parametr předávám "hlavní Form" aplikace, který mám roztažený po celé ploše primárního, nebo sekundárního monitoru. Pak v dalším ještě nastavím Opacity na 1, aby to celé bylo vidět (přes opacity jedu jenom proto, aby mi to v průběhu nastavování neproblikávalo), no a pak v další části už jenom pustím video:
Private Sub dalsiFilm(ByVal sender As Object, ByVal e As System.EventArgs) Handles prehravac.Ending
' načteme další soubor pro přehrávání
Dim dalsiVideo As String = soubory.soubor
' pokud je prázdný, ukončíme promítání
If dalsiVideo = "" Then
konecVidea()
Exit Sub
End If
' pokud není iniciován přehravač
If prehravac Is Nothing Then
' provedeme jeho iniciaci a spustíme přehrávání
prehravac = New Microsoft.DirectX.AudioVideoPlayback.Video(dalsiVideo)
prehravac.Owner = obraz
Else
' v opačném případě pouze načteme nový videosoubor
' a spustíme přehrávání
prehravac.Open(dalsiVideo)
End If
prehravac.Play()
End Sub
Samozřejmě, na začátku celé třídy mám deklaraci
Private WithEvents prehravac As Microsoft.DirectX.AudioVideoPlayback.Video
Noa to je právě ten problém - pokud mám aplikaci nastavenou na primáru, je to vše OK, pokud ale na sekundáru (do první metody vstupuje jako parametr Form roztažený na celou plochu sekundární obrazovky), pak video evidentně jede (zvuk je slyšet a fungují eventy), ale promítací plocha je černá.
|