2016-11-16 45 views
0

我不知道我是否正確地做了這件事。 在這裏,我試圖發揮所有在WPF C#中的視頻文件夾中的視頻,但它只能播放最後一個視頻,我怎麼能解決這個試圖在wpf中播放多個視頻,但它只拍攝最後一個視頻

 // Go to video folder. 
     var videosFolder = KnownFolders.VideosLibrary; 

     // Here i get all the files in the video folder. 
     var files = await videosFolder.GetFilesAsync(); 

     // If there is no file do nothing. 
     if (files.Count == 0) 
     { 
      return; 
     } 

     // Here i am looping all the videos. 
     foreach (var video in files) 
     { 
      // Accessing each file in the video folder. 
      var file = await StorageFile.GetFileFromPathAsync(video.Path); 
      // ... 
      if (file == null) 
      { 
       return; 
      } 

      // Getting the path of a file. 
      var source = MediaSource.CreateFromStorageFile(file); 

      // ... 
      VideoPlayer.SetPlaybackSource(source); 
     } 
+0

這是什麼'VideoPlayer'?您能否提供[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例? – slawekwin

+0

media元素表單xaml,對不起。 – Thembalethu

+0

我沒有看到['System.Windows.Controls.MediaElement'](https://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement)具有'SetPlaybackSource'方法 – slawekwin

回答

2

你是不是等待每個視頻開始前完成玩下一個。這就是爲什麼你只能看到最後一個真正發揮。

+0

我試圖使用Thread.Sleep(持續時間)我得到一個錯誤,但我確實包括system.threading – Thembalethu

+0

Thanx現在它的工作我創建了一個名爲「MediaPlaybackList mediaPlaybackList;」的容器在那裏我可以存儲所有的「MediaPlaybackItem mediaPlaybackItem;」然後循環「VideoPlayer.SetPlaybackSource(mediaPlaybackList);」 .. ..謝謝你們的幫助 – Thembalethu

1

你必須從MediaElement documentations:

訂閱MediaEnded事件時的MediaElement播放完畢音頻或視頻時發生。

這裏是一個示例代碼(未測試!):

// subscribe once 
VideoPlayer.MediaEnded += OnMediaEnded; 

private void OnMediaEnded(object sender, RoutedEventArgs e) 
{ 
    var nextMediaSource = GetNextMediaSource(); 
    if(nextMediaSource != null) 
     VideoPlayer.SetPlaybackSource(nextMediaSource); 
} 
+0

Thanx現在它的工作,我創建了一個名爲「MediaPlaybackList mediaPlaybackList;」的容器在那裏我可以存儲所有的「MediaPlaybackItem mediaPlaybackItem;」然後循環「VideoPlayer.SetPlaybackSource(mediaPlaybackList);」 .. ..謝謝你們的幫助 – Thembalethu

+0

@Thembalethu我很高興聽到這一點。如果您發現我的答案有用,請將其標記爲答案:) – Jalal