2011-08-02 59 views
0

我想在Windows Phone 7中執行類似於媒體播放器的操作,其中顯示了下幾首歌曲。我會採取什麼辦法來實現這一目標?Windows Phone 7中的媒體播放器顯示下一首歌曲

例子: 一首歌曲 一首歌曲 當前歌曲 下一首歌曲 下一首歌曲

目前我這樣的代碼:

 void MainPage_Loaded(object sender, RoutedEventArgs e)   
    {   
     List<string> songlist = new List<string>();   
     MediaLibrary library = new MediaLibrary();   
     mySongCollection = library.Songs;   
     MediaPlayer.ActiveSongChanged += new EventHandler<EventArgs>(MediaPlayer_ActiveSongChanged);   
     MediaPlayer.MediaStateChanged += new EventHandler<EventArgs>(MediaPlayer_MediaStateChanged);   

     UpdateCurrentSongInformation();   
    }   

    void UpdateCurrentSongInformation()   
    {   
     try   
     { 
      MediaLibrary lb = new MediaLibrary(); 
      int i = MediaPlayer.Queue.ActiveSongIndex; 

      textBlock1.Text= lb.Songs.ToString(); 

      txtAlbumName.Text = MediaPlayer.Queue.ActiveSong.Album.Name;   
      txtArtistName.Text = MediaPlayer.Queue.ActiveSong.Artist.Name;   
      txtSongName.Text = MediaPlayer.Queue.ActiveSong.Name; 
      progressBar1.Maximum = MediaPlayer.Queue.ActiveSong.Duration.Minutes*60+MediaPlayer.Queue.ActiveSong.Duration.Seconds; 
      double max = MediaPlayer.Queue.ActiveSong.Duration.Milliseconds; 


      BitmapImage bmp = new BitmapImage();   
      bmp.SetSource(MediaPlayer.Queue.ActiveSong.Album.GetAlbumArt()); 

      imgAlbumCover.Source = bmp;   
     }   
     catch   
     {   
      imgAlbumCover.Source = null;   
     }   
    } 

像丹尼斯暗示,我這樣的代碼是:

  MediaLibrary lb = new MediaLibrary(); 
      int i = MediaPlayer.Queue.ActiveSongIndex; 
      NextSong.Text = lb.Songs[i+1].Name; 

回答

2

既然你有MediaPlayer.Queue.ActiveSongIndex,您還可以通過MediaPlayer.Queue[n]訪問排隊中的現有項目,其中n是歌曲索引。您將獲得具有相同元數據的Song實例。只要您有當前的索引,您可以將其減1以檢查前一首歌曲,並將其增加1以檢查下一首歌曲。

相關問題