试图在wpf中播放多个视频,但它只播放了最后一个视频

时间:2016-11-16 06:51:54

标签: c#

我不知道我是否正确地做到了。 在这里,我试图播放wpf C#中视频文件夹中的所有视频,但它只播放最后一个视频,我该如何解决这个问题

        // 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);  
        }  

2 个答案:

答案 0 :(得分:2)

在开始播放下一个视频之前,您不是在等待每个视频完成。这就是为什么你只看到最后一个实际播放的原因。

答案 1 :(得分:2)

您必须从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);
}