获取音乐库文件

Get music library files

尝试在 windows phone app 8.1 上使用过多的音乐文件夹,但出现以下异常:

System.Reflection.TargetInvocationException was unhandled Message: An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in System.Windows.ni.dll Additional information: Exception has been thrown by the target of an invocation.

代码如下:调用

try
{
    GetFiles();
}
catch (Exception ex)
{
    Debug.WriteLine(ex.Message);
}

private async void GetFiles()
{
    StorageFolder folder = KnownFolders.MusicLibrary;
    IReadOnlyList<StorageFile> listOfFiles;
    if (folder!=null)
    {
        listOfFiles =await folder.GetFilesAsync(); //this line casuing Debugger.break();
    }
}

试试这个。

完美适用于 Windows 8.1 Universal

            FileOpenPicker openPicker = new FileOpenPicker();
            openPicker.ViewMode = PickerViewMode.Thumbnail;
            openPicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;
            openPicker.FileTypeFilter.Add(".mp3");
            openPicker.FileTypeFilter.Add(".wav");
            openPicker.FileTypeFilter.Add(".mp4");

            var file = await openPicker.PickSingleFileAsync();

            try
            {
                var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
                playbackElement3.SetSource(stream, file.ContentType);//Play Selected

                playbackElement3.Play();

            }
            catch (Exception ex)
            {

            }

然后尝试从源中获取列表

在 package.appmanifest 文件

中添加音乐库功能

然后试试这个代码。它对我有用

    StorageFolder folder = KnownFolders.MusicLibrary;
    if (folder!=null)
    {
       var songs = (await   folder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByName)).ToList();
    }

Link to Sample Code