我在想什麼?從視頻文件夾播放.mov視頻時出錯(使用MediaElement)
我試圖加載從視頻庫中的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事件
在的MediaFailed事件中,我得到以下(它使用Video.MediaOpened += RightVideo_MediaOpened;
註冊):
的ErrorMessage = 「MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED:HRESULT - 0xC00D36C4」
我有因爲我在XAML中聲明瞭這個元素,所以Visual Tree中的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中。 –