2011-08-02 9 views
0

次のいくつかの曲が表示されているWindows Phone 7のメディアプレーヤーに似たようなことをしたい。私はこれを達成するためにどのようなアプローチをとるだろうか?WindowsのメディアプレーヤーWindows Phone 7の次の曲を表示

例: 前の曲 前の曲 CURRENT SONG 次の曲 次の曲

現在、このように私のコード:デニスのよう

 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つずつインクリメントすることができます。

関連する問題