Windows Проблема с медиаплеером в дочерней форме mdi - PullRequest
0 голосов
/ 01 мая 2020

у меня есть 2 формы (form1) и (form2), у form2 есть медиаплеер и выпадающий список для выбора видео. Это код:

Public Class Form2
  Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.SelectedItem = "Video 1" Then    
      On Error Resume Next
      IO.File.WriteAllBytes(IO.Path.GetTempPath & "\Video 1.mp4", My.Resources.Video_2)
      AxWindowsMediaPlayer1.URL = IO.Path.GetTempPath & "\Video 1.mp4"
      IO.File.Delete(IO.Path.GetTempPath & "\Video 1.mp4")
    End If

    If ComboBox1.SelectedItem = "Video 2" Then
      On Error Resume Next
      IO.File.WriteAllBytes(IO.Path.GetTempPath & "\Video 2.mp4", My.Resources.Video_2)
       AxWindowsMediaPlayer1.URL = IO.Path.GetTempPath & "\Video 2.mp4"
       IO.File.Delete(IO.Path.GetTempPath & "\Video 2.mp4")
    End If

    If ComboBox1.SelectedItem = "Video 3" Then
      On Error Resume Next
      IO.File.WriteAllBytes(IO.Path.GetTempPath & "\Video 3.mp4", My.Resources.Video_3)
      AxWindowsMediaPlayer1.URL = IO.Path.GetTempPath & "\Video 3.mp4"
      IO.File.Delete(IO.Path.GetTempPath & "\Video 3.mp4")
    End If
  End Sub
End Class

этот код работает, пока я не изменился (form1), чтобы быть родительский и (form2) дочерний с этим кодом:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  Form2.StartPosition = FormStartPosition.Manual
  Form2.Left = 105
  Form2.Top = 50
  Form2.MdiParent = Me
End Sub

видео не просматривается правильно (только его часть), как если бы видео было больше экрана медиаплеера, а полноэкранный режим - нет работает на всех. это еще одно испытание без прогресса:

If ComboBox1.SelectedItem = "Video 1" Then
  Dim b As Byte() = My.Resources.Video_1
  Dim TheFIlePath As String = "Video 1.mp4"
  Dim TempFile As IO.FileStream = IO.File.Create(TheFIlePath)
  TempFile.Write(b, 0, b.Length)
  TempFile.Close()
  AxWindowsMediaPlayer1.URL = (TheFIlePath)
End If

я пробовал и true, и false для stretchtofit, также пытался (исключение Try и Catch), как это:

If ComboBox1.SelectedItem = "Video 1" Then

    Try
        AxWindowsMediaPlayer1.URL = "D:\40.mp4"
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End If

безуспешно, это скриншот видео, когда он играет хорошо:

enter image description here

, и это когда form2 стал mdi child: enter image description here

...