Windows mdi child 格式的媒体播放器问题
Windows Media Player Problem in mdi child form
我有 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) 更改为 parent
并且 (form2) 为 child 并使用此代码:
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
我试过 stretchtofit 的 true 和 false
也尝试过这样的(尝试并捕获异常):
If ComboBox1.SelectedItem = "Video 1" Then
Try
AxWindowsMediaPlayer1.URL = "D:.mp4"
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
没有成功,
这是播放好的时候的视频截图:
这就是 form2 变成 mdi child 的时候:
经过大量搜索,我发现 windows 媒体播放器无法在 mdi 子窗体中全屏播放。
所以我没有使用 mdi 子窗体,而是用面板替换了它并添加了 AxWindowsMediaPlayer,全屏 属性 现在工作正常并且视频缩放正常。
我有 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) 更改为 parent 并且 (form2) 为 child 并使用此代码:
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
我试过 stretchtofit 的 true 和 false 也尝试过这样的(尝试并捕获异常):
If ComboBox1.SelectedItem = "Video 1" Then
Try
AxWindowsMediaPlayer1.URL = "D:.mp4"
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
没有成功, 这是播放好的时候的视频截图:
这就是 form2 变成 mdi child 的时候:
经过大量搜索,我发现 windows 媒体播放器无法在 mdi 子窗体中全屏播放。
所以我没有使用 mdi 子窗体,而是用面板替换了它并添加了 AxWindowsMediaPlayer,全屏 属性 现在工作正常并且视频缩放正常。