我创建了一个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;
答案 0 :(得分:0)
在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 media in the background
现在,您的应用可以管理播放列表或循环设置,并使用媒体播放器实例再次调用Play方法。