Windows 8应用程序 – MediaElement不播放“.wmv”文件
我的Win8应用程序中存在MediaElement
的问题 – 当我尝试从本地库中播放一些“.wmv”文件时,它经常(并非总是)抛出MediaFailed
并且我收到错误
MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED:HRESULT – 0xC00D36C4
意思是
video编解码器或音频编解码器不受支持,或video文件中的一个流已损坏。 可能不支持此内容。
问题不是文件已损坏(我可以使用Windows Media Player播放它们)。 这是我用来设置MediaElement
的代码:
private async void Button_Click(object sender, RoutedEventArgs e) { var picker = new FileOpenPicker(); picker.FileTypeFilter.Add(".wmv"); picker.FileTypeFilter.Add(".mp4"); picker.SuggestedStartLocation = PickerLocationId.VideosLibrary; StorageFile file = await picker.PickSingleFileAsync(); if (file != null) { using (IRandomAccessStream ras = await file.OpenAsync(FileAccessMode.Read)) { me.SetSource(ras, file.ContentType); } } }
有人知道这里有什么问题吗? 提前致谢。
问题可能是您在播放之前关闭了流。 因此这段代码:
if (file != null) { using (IRandomAccessStream ras = await file.OpenAsync(FileAccessMode.Read)) { me.SetSource(ras, file.ContentType); } // The stream is now closed! How can it be played!? }
应该更改为没有using
块:
if (file != null) { IRandomAccessStream ras = await file.OpenAsync(FileAccessMode.Read); me.SetSource(ras, file.ContentType); }
我确实在一些频道9video(中高档wmv文件)上尝试了上面第二段代码,我的应用程序成功播放了它们。