【发布时间】:2015-05-12 18:41:44
【问题描述】:
在我的 Silverlight Web 应用程序中,我正在从客户端 bin 文件夹访问 mp4 音频文件。我正在使用保存文件对话框将此文件流保存到客户端计算机上的本地文件夹。
我可以在媒体元素中播放 mp4 文件并且可以毫无问题地听到音频,但是当我将文件保存到本地文件夹并尝试打开它时,它无法播放。
如果我用同样的方法下载 mp3 文件,下载后我可以毫无问题地播放 mp3 音频。
是否有任何不同的方式来读取和写入 mp4 文件的流而不是 mp3。
没有我在哪里找到解决方案的地方。
到目前为止,我从研究中了解到的是,mp4 具有 moov 和 mdat 框,其中 mdat 是第一位的。但是在读取或写入 MP4 文件时,我们需要将 moov 框移动到 mdat 框之前,并相应地重写文件偏移量。
但我需要一些示例,如何准确地读取和写入 mp4 文件。
这是我的代码
saveFileDialog1.Filter = "MP3 Files (*.mp3)|*.mp3|MP4 Files|*.mp4"
saveFileDialog1.ShowDialog()
Dim str As Stream = Nothing
Using audiofs As System.IO.FileStream = saveFileDialog1.OpenFile()
Dim bytes As Byte() = New Byte(1638) {}
Dim bytesToRead As Integer = 0
bytesToRead = streamAudio_download.Read(bytes, 0, bytes.Length)
While (bytesToRead = streamAudio_download.Read(bytes, 0, bytes.Length)) <> 0
audiofs.Write(bytes, 0, bytesToRead)
End While
End Using
【问题讨论】:
标签: vb.net silverlight streaming video-streaming mp4