Доступ к музыкальным файлам 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);
Это выведет путь к известной папке, которая является папкой в библиотеке, где новые файлы сохраняются по умолчанию. Для получения дополнительной информации, пожалуйста, смотрите этот ответ.