我想做一些类似于windows phone7中的媒体播放器的事情,在那里会显示下几首歌曲。我会采取什么方法来实现这一点?
示例:上一首歌上一首歌当前歌下一首歌下一首歌
我的代码目前是这样的:
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;发布于 2011-08-02 12:32:40
由于您有MediaPlayer.Queue.ActiveSongIndex,因此您还可以通过MediaPlayer.Queue[n]访问队列中的现有项,其中n是歌曲索引。您将获得一个具有相同元数据的Song实例。只要您有当前的索引,您就可以将其递减1以检查前一首歌曲,并将其递增1以检查下一首歌曲。
https://stackoverflow.com/questions/6907081
复制相似问题