Background Audio Player 延伸

  • 868
  • 0

摘要:Background Audio 延伸

接下來這篇主要就是延伸 Background Audio 應用,接下來小編會一個步驟一個步驟來

 

教大家如何創立一個播放程式代理器,做為用來處理後台用的。

 

 

步驟一:在專案底下按右鍵加入新增一個專案,選擇 Windows Phone 音訊播放代理程式 。

小編這邊取名為:AudioPlayer

 

步驟二:在原本的專案底下,在   參考  資料夾底下加入剛創好的 AudioPlayer 作為參考。

 

步驟三:讓我們轉回剛建好的 音訊播放代理程式 下,點開 AudioPlayer.cs  加入引用

using System.Collections.Generic;

 

步驟四:在 AudioPlayer class 宣告一個 全域靜態變數

 

static int currentTrackNumber = 0;

 

步驟五: 加下段程式碼來創建靜態歌曲列表:

 

        private static List _playList = new List
        {
            new AudioTrack(new Uri("Ring01.wma", UriKind.Relative), 
                            "Ringtone 1", 
                            "Windows Phone", 
                            "Windows Phone Ringtones", 
                            null),

            new AudioTrack(new Uri("Ring02.wma", UriKind.Relative), 
                            "Ringtone 2", 
                            "Windows Phone", 
                            "Windows Phone Ringtones", 
                            null),

            new AudioTrack(new Uri("Ring03.wma", UriKind.Relative), 
                            "Ringtone 3", 
                            "Windows Phone", 
                            "Windows Phone Ringtones", 
                            null),

            // A remote URI
            new AudioTrack(new Uri("http://traffic.libsyn.com/wpradio/WPRadio_29.mp3", UriKind.Absolute), 
                            "Episode 29", 
                            "Windows Phone Radio", 
                            "Windows Phone Radio Podcast", 
                            null)
        };

 

為了讓後台跟前台的資訊不要不一致,所以我們要建立 靜態列表。

 

 

步驟六:再來我們要在後台新增與前面Button差不多,建立上一首、播放、下一首程式碼

 

        private void PlayNextTrack(BackgroundAudioPlayer player)
        {
            if (++currentTrackNumber >= _playList.Count)
            {
                currentTrackNumber = 0;
            }

            PlayTrack(player);
        }

        private void PlayPreviousTrack(BackgroundAudioPlayer player)
        {
            if (--currentTrackNumber < 0)
            {
                currentTrackNumber = _playList.Count - 1;
            }

            PlayTrack(player);
        }

        private void PlayTrack(BackgroundAudioPlayer player)
        {
            if (PlayState.Paused == player.PlayerState)
            {
                // If we're paused, we already have 
                // the track set, so just resume playing.
                player.Play();
            }
            else
            {
                // Set which track to play. When the TrackReady state is received 
                // in the OnPlayStateChanged handler, call player.Play().
                player.Track = _playList[currentTrackNumber];
            }

        }

 

步驟七:為了當播放的曲目改變時,即會有狀態變化我們要找到 OnPlayStateChanged 修改成以下程式碼

 

        protected override void OnPlayStateChanged(BackgroundAudioPlayer player, AudioTrack track, PlayState playState)
        {
            switch (playState)
            {
                case PlayState.TrackReady:
                    // The track to play is set in the PlayTrack method.
                    player.Play();
                    break;

                case PlayState.TrackEnded:
                    PlayNextTrack(player);
                    break;
            }

            NotifyComplete();
        }

 

 

步驟八:為了要完成使用者控制與處理目前要求的任務,找到 OnUserAction 修改成下列程式碼

 

        protected override void OnUserAction(BackgroundAudioPlayer player, AudioTrack track, UserAction action, object param)
        {
            // User actions can be initiated from the main application or from the UVC.
            switch (action)
            {
                case UserAction.Play:
                    PlayTrack(player);
                    break;

                case UserAction.Pause:
                    player.Pause();
                    break;

                case UserAction.SkipPrevious:
                    PlayPreviousTrack(player);
                    break;

                case UserAction.SkipNext:
                    PlayNextTrack(player);
                    break;
            }

            NotifyComplete();
        }

 

 

以上就可以完成後台應用播放程式了!!接下來讀者就可以測試此應用了

 

可以在應用程式播放的時候按F12鎖頻  做測試是否有繼續播放。

 

也可以按   F9、F10  提升降低音量來叫出  隱藏的音樂播放器。

 

以下是小編的測試結果,希望能幫助到大家。

 

 

-------------------------------------

 

以上的內容我是以<How to play background audio for Windows Phone>做為參考。

 

小編寫的比較簡單,如果讀者想要更了解可以到此網頁學習學習。