如何从手机的MediaLibrary中获取特定歌曲?并优化代码

时间:2013-08-20 12:20:14

标签: c# windows-phone-7 windows-phone-8 playback media-library

在我的应用程序中,我有以下代码,它是手机的MediaLibrary,并从Song过滤掉正确选择的MediaLibrary.Songs并播放它:

using (MediaLibrary library = new MediaLibrary())
{
    foreach (var item in library.Songs)
    {
        if (item.Name == songName)
        {
            FrameworkDispatcher.Update();
            MediaPlayer.Play(item);
        }
    }
    library.Dispose();
}  

然而,这需要相当长的时间并导致暂停。是否有更快/更有效的方式从手机的Song访问特定MediaLibrary.Songs

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

也许你必须在读取目录后将值存储在XML文档中,如果库没有被更改,这可以节省大量时间(检查整个库的大小)。如果是,则可以再次检查库并更新XML。

答案 1 :(得分:0)

这根本不是一种有效的方法。 要在MediaLibrary中查找任何歌曲,请使用 LINQ 。 实施例

MediaPlayer.Play(library.Songs.First(x=>x.Name == songName));