我想做一些类似于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;
}
}
就像Dennis建议的那样,我这样编码:
MediaLibrary lb = new MediaLibrary();
int i = MediaPlayer.Queue.ActiveSongIndex;
NextSong.Text = lb.Songs[i+1].Name;
由于您有MediaPlayer.Queue.ActiveSongIndex
,您还可以通过MediaPlayer.Queue[n]
的索引访问队列中的现有项,其中n是歌曲索引。您将获得具有相同元数据的Song
实例。只要您有当前索引,您就可以将其减1以检查前一首歌曲,并将其增加1以检查下一首歌曲。