播放嵌入资源中的视频文件时出错



我正在开发用于播放视频文件的vb.net Windows应用程序。

我以这种方式在嵌入式资源中添加了一个视频文件:

项目->属性。然后选择"资源"选项卡。下一步选择"添加重新来源"->"从现有文件"。

我正在尝试播放该文件,但线上出现了运行时错误

 Dim myByte As Byte = myStream.ReadByte

错误:对象引用未设置为对象的实例。

这是代码。。。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim aPath As String = Path.GetDirectoryName(Assembly.GetExecutingAssembly.GetModules()(0).FullyQualifiedName)
    Dim myStream As Stream
    myStream = Assembly.GetExecutingAssembly.GetManifestResourceStream("111.mp4")
    Dim myFileStream As New FileStream("111.mp4", FileMode.Create)
    Dim myFileBinary As New BinaryWriter(myFileStream)
    Try
        Dim myByte As Byte = myStream.ReadByte
        While Not myByte = -1
            myFileBinary.Write(myByte)
            myByte = myStream.ReadByte
        End While
    Catch ex As Exception
    Finally
        myFileStream.Close()
    End Try
    AxWindowsMediaPlayer1.URL = Path.Combine(aPath, "111.mp4")
    AxWindowsMediaPlayer1.settings.autoStart = True

End Sub

我缺了一步吗?

实际上您使用的是My.Resources。因此,您不需要从程序集中读取资源。

你可以简单地阅读和使用它的方式:

Dim FilePath = Path.Combine(Application.StartupPath, "video.wmv")
If (Not File.Exists(FilePath)) Then
    File.WriteAllBytes(FilePath, My.Resources.video)
End If
AxWindowsMediaPlayer1.URL = FilePath
AxWindowsMediaPlayer1.Ctlcontrols.play()

if部分是检查文件是否存在并在之前提取过,这样我们就不需要再次提取它了。

最新更新