Wp7音乐播放器

本文关键字:播放器 音乐 Wp7 | 更新日期: 2023-09-27 18:09:19

我正在尝试开发一个音乐播放器应用程序在wp。现在,我可以从medilibrary检索歌曲列表并将其添加到列表框中。

MediaLibrary lib = new MediaLibrary();
var SongName = (from m in lib.Songs select m.Name).ToList();
listBox1.ItemsSource = SongName;

列表正在填充,我正在使用事件

访问ListBox项目
listBox1_SelectionChanged 

我想要选择的项目转换为歌曲类型,这样我就可以使用MediaPlayer类播放它。

正常类型转换,如

Song x = (Song)listBox1.SelectedItem;

我如何使它工作?

Wp7音乐播放器

选择歌曲名称(字符串)作为数据源类型。正如您所看到的,您不能简单地通过显式强制转换将字符串转换为Song类型(如果您真的想保留字符串类型,您可以在MediaLibrary中执行搜索)。或者你可以将Song对象本身绑定到你的ListBox。

MediaLibrary lib = new MediaLibrary();
var SongName = lib.Songs.ToList();
listBox1.ItemsSource = SongName;

然后在事件处理程序

Song x = listBox1.SelectedItem as Song;
if(x != null)
   MediaPlayer.Play(x);

如果您真的只想在ListBox中拥有string类型,您可以在SelectedChanged事件中执行这样的搜索。(您必须使lib成为类级别变量)

Song x = lib.Songs.Where(s => s.Name == listbox1.SelectedItem.ToString()).FirstOrDefault();

此方法的主要问题是,如果有两个同名的曲目,则只返回第一个曲目。您将需要一种区分它们的方法,但是其他属性,例如Artist,已经从数据源中删除(因为您只使用了歌曲的Name属性)。