我不知道我是否正确地做到了。 在这里,我试图播放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);
}
答案 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);
}