2016-08-10 132 views
-1

我創建了一個UWP應用程序以在後臺播放某些曲目。基本上通過以下鏈接:https://blogs.windows.com/buildingapps/2016/01/13/the-basics-of-background-audio/。 我想爲某些歌曲設置重複計數,因此如果一首歌曲重複計數爲10,那麼在播放列表中播放下一首歌曲之前,該歌曲應重複播放10次。如何在UWP應用程序中以重複模式播放歌曲

在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

Downvoter謹慎解釋? – bit

回答

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方法。

+1

我不明白這是怎麼讓你重複一個單一的軌道所需的次數.. – bit

+0

由於背景音頻現在在實際的應用程序內,應用程序將能夠再次調用播放方法。這可以通過媒體結束事件中的PlaybackSession對象的Position屬性完成。 (注意:您現在需要使用新的MediaPlayer類而不是backgroundaudioplayer類) – Shubhan

相關問題