音频播放列表uwp中介元素C#

时间:2018-09-11 16:37:46

标签: c# uwp mediaelement

存储文件          A match 437 8 True 438 8 True 439 8 True 440 8 True 441 8 True 442 8 False 488 2 False 489 2 True 490 2 True

ObservableCollection<StorageFile> files;

打开文件位置。文件位置打开,音频被添加到列表中

public MainPage()
{
    this.InitializeComponent();
    files = new ObservableCollection<StorageFile>();
    _fileList.ItemsSource = files;
    this.DataContext = this;
} 

从列表视图中选择文件 该文件会播放,但是一旦结束,它就不会播放列表中的下一个文件。我想自动播放列表中的下一个,但是我在为此苦苦挣扎,请帮忙

async private System.Threading.Tasks.Task AddMedia()
{
    //Create a new picker
    var filePicker = new Windows.Storage.Pickers.FileOpenPicker();

    //Add filetype filters. 

    filePicker.FileTypeFilter.Add(".mp3");
    filePicker.FileTypeFilter.Add(".wav");


    //Set picker start location to the video library
    filePicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;

    //Retrieve single file from picker
    StorageFile file;
    file = await filePicker.PickSingleFileAsync();

    if (file != null)
    {
        files.Add(file);
        mediaElement.Play();
    }

}

2 个答案:

答案 0 :(得分:0)

只需使用两个MediaElement即可实现您的要求。

  

一种解决方案是使用两个MediaElement。一个MediaElemet总是在播放,第二个是在后台打开并加载下一首曲目,以便在需要时立即开始播放。当一个播放列表项结束时,我们可以立即开始播放下一个。然后刚播放的那个开始排队下一个项目。听起来很简单吧?

     

使任何播放列表解决方案与MediaElement一起使用的关键是   处理“ MediaEnded”事件。当我们收到此事件时,我们知道   该项目已播放完毕。然后,我们可以检查播放列表并   开始播放下一个项目。幸运的是,与Media Player SDK不同,   MediaElement保证我们将始终获得“ MediaEnded”   事件。没有这个播放列表解决方案将是   不可能。

https://blogs.msdn.microsoft.com/wsdevsol/2014/07/11/multi-mediaelement-a-playlist-solution-next-item-no-waiting/

答案 1 :(得分:0)

您应该使用MediaPlaybackList创建音乐播放列表并轻松管理它们,它可以帮助您非常轻松地移至下一个媒体文件或上一个媒体文件,支持无间隙播放,从长远来看,它将使您可以轻松地完全控制播放列表。最好将它与ui控件MediaPlayerElement

一起使用