Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 从视频文件夹播放.mov视频时出错(使用MediaElement)_Video_Windows 8_Quicktime_Mediaelement_Mov - Fatal编程技术网

Video 从视频文件夹播放.mov视频时出错(使用MediaElement)

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");

我在尝试什么?

我正在尝试从视频库加载quicktime电影,如下所示:

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中。