如何在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;
在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方法。