如何在UWP应用程序中以重复模式播放歌曲

本文关键字:模式 播放 UWP 应用程序 | 更新日期: 2023-09-27 18:01:32

我创建了一个UWP应用程序,在后台播放某些曲目。基本上通过以下链接:https://blogs.windows.com/buildingapps/2016/01/13/the-basics-of-background-audio/。我想为某些歌曲设置重复计数,因此,如果一首歌的重复计数为10,则该歌曲意味着在播放列表中的下一首歌曲之前要重复10次。

在Windows phone 8.0平台上,AudioPlayerAgent出现以下事件,表示播放状态发生了变化。很容易重写该事件并添加自定义逻辑来重复歌曲。

protected override void OnPlayStateChanged(BackgroundAudioPlayer player, AudioTrack track, PlayState playState)
{
    switch (playState)
    {
        case PlayState.TrackEnded:
            // keep repeating the same track
            player.Position = new TimeSpan(0, 0, (int)0);
            // add custom logic here..    
            break;
    }
    NotifyComplete();
}

在UWP平台中等效的事件是什么?到目前为止,我在UWP平台上尝试了以下事件,但无济于事。

BackgroundMediaPlayer.Current.CurrentStateChanged += Current_CurrentStateChanged;
BackgroundMediaPlayer.Current.MediaEnded += Current_MediaEnded;
BackgroundMediaPlayer.Current.MediaOpened += Current_MediaOpened;

如何在UWP应用程序中以重复模式播放歌曲

在Windows 10 1607版本中,引入了一个新的单进程模型,极大地简化了启用背景音频的过程。

当应用程序从前台移到后台时,媒体继续播放。这意味着即使用户最小化了你的应用程序,回到主屏幕,或者以其他方式离开你的应用程序,你的应用程序可以继续播放音频。

从Windows 10 1607版本开始,播放媒体的最佳实践建议是使用MediaPlayer类而不是MediaElement

使用MediaPlayer播放媒体文件

_mediaPlayer = new MediaPlayer();
_mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/example_video.mkv"));
_mediaPlayer.Play();

MSDN:在后台播放媒体

现在你的应用程序可以管理播放列表或循环设置,并使用媒体播放器实例再次调用Play方法。