Video 从视频文件夹播放.mov视频时出错(使用MediaElement)
我在尝试什么? 我正在尝试从视频库加载quicktime电影,如下所示:Video 从视频文件夹播放.mov视频时出错(使用MediaElement),video,windows-8,quicktime,mediaelement,mov,Video,Windows 8,Quicktime,Mediaelement,Mov,我在尝试什么? 我正在尝试从视频库加载quicktime电影,如下所示: async void SetupVideoAsyncAndPlay() { StorageFolder folder = await KnownFolders.VideosLibrary.GetFolderAsync("Video Folder"); StorageFile file = await folder.GetFileAsync("test_video.mov");
async void SetupVideoAsyncAndPlay() {
StorageFolder folder =
await KnownFolders.VideosLibrary.GetFolderAsync("Video Folder");
StorageFile file = await folder.GetFileAsync("test_video.mov");
// Ensure a file was selected
if (file != null) {
var fileStream =
await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
Video.SetSource(fileStream, file.ContentType);
Video.Play();
}
}
我试过什么?
我是经过大量挖掘才得出这个结论的。首先,我将Windows.Storage.FileAccessMode.ReadWrite
设置为只读取,不触发任何事件。
现在,它触发MediaFailed事件(使用Video.MediaOpened+=RightVideo\u MediaOpened;
注册它)
在MediaFailed事件中,我得到以下信息:
ErrorMessage=“MF_媒体_引擎_ERR_SRC_不受支持:HRESULT-0xC00D36C4”
由于我在XAML中声明了MediaElement,所以我在可视树中有了MediaElement(可能的问题之一)
此外,我还尝试在没有文件流的情况下运行相同的视频(直接从应用程序包中运行),并且效果良好
此外,如果我用选择器替换StorageFile/FileStream代码,它也可以工作:
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.FileTypeFilter.Add(".mov");
StorageFile file = await openPicker.PickSingleFileAsync();
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
请注意,我在Package.appmanifest中为视频文件夹授予了权限。您何时调用SetupVideoAsyncAndPlay?我记得有过同样的问题,并通过确保MediaElement初始化仅在加载到VisualTree后(在接收到加载的事件后)才完成来解决它
希望有帮助。当用户按下按钮时,我会调用
setupvideoasync和play
。因此,我相信MediaElement已经加载到VisualTree中。