Изображение из музыкальной библиотеки не отображается в приложении UWP

#windows #xaml #uwp

#Windows #xaml #uwp

Вопрос:

Я новичок в разработке UWP, и я просто показываю изображение в своем приложении из музыкальной библиотеки.

Фактически, я добавил музыкальную библиотеку в «Возможности» приложения, и я могу подтвердить, что у меня есть доступ к музыкальной библиотеке, поскольку я могу читать и записывать в нее файлы.

Но когда я пытаюсь загрузить изображение в XAML, оно просто не отображается…

 <Image Height="200" Width="200" Source="C:/Users/Alex Mercer/Music/Album/albumArt.png" />
  

Пожалуйста, помогите мне понять и решить проблему.

😃 Большое спасибо!

Комментарии:

1. Приложение UWP не может просто получить доступ к случайным файлам в файловой системе. Если вы хотите получить доступ к музыкальной библиотеке, вам придется сделать это через предоставленные интерфейсы.

Ответ №1:

Хотя мы включаем соответствующие возможности, доступ к файлам через пути по-прежнему строго ограничен в UWP.

На самом деле, не стоит записывать полный путь в XAML, потому что вы не можете гарантировать, что путь должен существовать на устройстве, на котором установлено приложение.

Чтобы отобразить изображения в музыкальной библиотеке, вы можете сделать это:

xaml

 <Image Height="200" Width="200" x:Name="AlbumImage" Loaded="AlbumImage_Loaded"/>
  

xaml.cs

 private async void AlbumImage_Loaded(object sender, RoutedEventArgs e)
{
    try
    {
        var albumFolder = await KnownFolders.MusicLibrary.GetFolderAsync("Album");
        var albumPic = await albumFolder.GetFileAsync("albumArt.png");

        var bitmap = new BitmapImage();
        using (var stream = await albumPic.OpenAsync(FileAccessMode.Read))
        {
            await bitmap.SetSourceAsync(stream);
        }
        AlbumImage.Source = bitmap;
    }
    catch (FileNotFoundException)
    {
        // File or Folder not found
    }
    catch (Exception)
    {

        throw;
    }
}