2012-12-27 60 views
0

我在想什麼?從視頻文件夾播放.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的視頻文件夾。

回答

0

你什麼時候調用SetupVideoAsyncAndPlay?我記得遇到同樣的問題,並通過確保MediaElement初始化只在將它加載到VisualTree中後(在接收Loaded事件後)進行初始化來解決它。

希望有所幫助。

+0

當用戶按下按鈕時,我調用'SetupVideoAsyncAndPlay'。因此,我相信MediaElement已經加載到VisualTree中。 –