在 Visual Basic .NET 解决方案中嵌入Windows 媒体播放器控件

若要在 Visual Basic .NET 应用程序中使用 Windows 媒体播放器 9 系列或更高版本的功能,请先将组件添加到窗体中,如将Windows 媒体播放器控件与Microsoft Visual Studio配合使用中所述

本部分介绍如何创建可播放视频并具有自定义播放和停止按钮的应用程序。

添加视频窗口

将Windows 媒体播放器控件添加到窗体。 调整控件的大小,然后将其放置在希望显示视频窗口的位置。

选择Windows 媒体播放器控件,然后将 uiMode 属性更改为“none”。 此设置隐藏 UI 控件。 当用户播放视频时,它将显示在窗口中。 对于仅音频内容,将显示可视化效果。

添加两个按钮并调整窗体

现在,向窗体添加两个按钮。 选择第一个按钮,并将 Text 属性更改为“播放”。 选择第二个按钮,将其 Text 属性更改为“Stop”。

添加“播放代码”

双击“ 播放 ”按钮可显示“代码”窗口。 将显示以下代码:

Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

End Sub

将此行添加到子例程:

AxWindowsMediaPlayer1.URL = "c:\mediafile.wmv"

在前面的代码示例中,“axWindowsMediaPlayer1”是Windows 媒体播放器控件的默认名称,“c:\mediafile.wmv”是要播放的媒体名称的占位符。

如果已将 Windows 媒体播放器 SDK 中的数字媒体内容添加到 Windows 媒体播放器 中的库,则可以改用以下代码:

axWindowsMediaPlayer1.currentPlaylist = _
    axWindowsMediaPlayer1.mediaCollection.getByName("mediafile")

由于 autoStart 属性默认为 true,因此在设置 currentPlaylistURL 属性时,Windows 媒体播放器将开始播放。

添加停止代码

双击“ 停止 ”按钮以显示“代码”窗口。 将显示以下代码:

Private Sub Button2_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

End Sub

将此行添加到子例程:

AxWindowsMediaPlayer1.Ctlcontrols.stop()

注意

Windows 媒体播放器控件的托管代码包装器将 Controls 对象公开为 Ctlcontrols,以避免与从 System.Windows 继承的 Controls 属性发生冲突。Forms.Control

 

添加错误处理

Windows 媒体播放器控件在遇到错误(如无效 URL)时不会引发异常。 相反,控件会发出事件信号。 应用程序应处理播放器发送的错误事件。

若要创建事件处理程序,请打开窗体类的代码窗口。 从窗口顶部的下拉列表中,选择Windows 媒体播放器控件。 事件列表显示在右侧的下拉列表中。 从该列表中选择 MediaError。 将显示以下代码:

Private Sub AxWindowsMediaPlayer1_MediaError(ByVal sender As Object, _
    ByVal e As _WMPOCXEvents_MediaErrorEvent) Handles AxWindowsMediaPlayer1.MediaError

End Sub

可以在子例程中插入以下代码,以提供最小的错误处理功能。 请注意,可以从 _WMPOCXEvents_MediaErrorEvent 参数中检索有关错误的信息。

Try
    ' If the file is corrupt or missing, show the 
    ' hexadecimal error code and URL.
    Dim errSource As WMPLib.IWMPMedia2 = e.pMediaObject
    Dim errorItem As WMPLib.IWMPErrorItem = errSource.Error
    MessageBox.Show("Media error " + errorItem.errorCode.ToString("X") _
                    + " in " + errSource.sourceURL)
Catch ex As InvalidCastException
    ' In case pMediaObject is not an IWMPMedia item.
    MessageBox.Show("Player error.")
End Try

在.NET Framework解决方案中嵌入Windows 媒体播放器控件