Доступ к музыкальным файлам UWP -KnownFolders.MusicLibrary.GetItemsAsync() ничего не возвращает

Эй, у меня есть следующее:

 var fileList = await KnownFolders.MusicLibrary.GetItemsAsync();

Он не возвращает никаких файлов, и у меня есть файлы в папке Музыка. У меня тоже есть:

<Capabilities>
<Capability Name="internetClient" />
<Capability Name="removableStorage" />
<Capability Name="documentsLibrary" />
<Capability Name="MusicLibrary" />
<Capability Name="HomeGroup" />
<Capability Name="RemovableDevices" />

Я не знаю, почему он не возвращает никаких файлов / исключение? Какие-либо предложения? Я также попытался FolderPicker, чтобы получить все файлы в папке, но тот же результат.

1 ответ

Решение

Сформируйте код, который вы разместили, похоже, вы используете неправильные возможности.

Возможность musicLibrary должна включать пространство имен uap при объявлении его в манифесте пакета приложения, как показано ниже.

<Capabilities><uap:Capability Name="musicLibrary"/></Capabilities>

Для получения дополнительной информации см. Декларации о возможностях приложения.

Так что вы можете изменить свой Package.appxmanifest как следующее:

<Capabilities>
  <Capability Name="internetClient" />
  <uap:Capability Name="removableStorage" />
  <uap:Capability Name="musicLibrary" />
  <uap:Capability Name="documentsLibrary" />
</Capabilities>

И тогда вы сможете получить файлы и подпапки в музыкальной библиотеке.

var fileList = await KnownFolders.MusicLibrary.GetItemsAsync();
if (fileList.Count > 0)
{
    foreach (var item in fileList)
    {
        Debug.WriteLine(item.Name);
    }
}

Музыкальная библиотека обычно имеет следующий путь.

%USERPROFILE%\Music

Вы можете проверить, есть ли у вас файлы по этому пути. А также вы можете проверить путь с помощью следующего кода.

var musicLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music);
Debug.WriteLine(musicLibrary.SaveFolder.Path);

Это выведет путь к известной папке, которая является папкой в ​​библиотеке, где новые файлы сохраняются по умолчанию. Для получения дополнительной информации, пожалуйста, смотрите этот ответ.

Другие вопросы по тегам