UWP更改存储文件的缩略图

问题描述 投票:0回答:1

我依靠单击按钮来更改StorageFile的缩略图。 (这是一个音乐文件。)

而且我想通过从本地选择图像文件来实现。

    private async void ChangeAlbumArtButton_Click(object sender, RoutedEventArgs e)
    {
        var music_file = await CurrentMusic.GetStorageFileAsync();
        using (var dst = await music_file.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.MusicView, 1024))
        {
            if (!dst.CanWrite)
            {
                MainPage.Instance.ShowNotification(Helper.LocalizeMessage("UnableToChangeAlbumArt"));
                return;
            }
            FileOpenPicker picker = new FileOpenPicker
            {
                SuggestedStartLocation = PickerLocationId.PicturesLibrary
            };
            foreach (var item in new string[] { ".jpg", ".png", ".jpeg" })
                picker.FileTypeFilter.Add(item);
            var file = await picker.PickSingleFileAsync();
            if (file == null) return;
            using (var src_stream = await file.OpenReadAsync())
            {
                await dst.WriteAsync(await FileIO.ReadBufferAsync(file));
                var src = new BitmapImage();
                src.SetSource(src_stream);
                AlbumArt.Source = src;
            }
        }
    }

但是,dst.CanWrite为假。如何更改缩略图?

uwp win-universal-app
1个回答
0
投票

如果您打算更改文件的缩略图,则这不是通过代码写入流的方法。

缩略图的提供者是打开文件的默认应用程序。例如,打开音乐文件的默认应用程序是Groove Music,并且您看到的缩略图由Groove Music提供。

如果您打算修改音乐文件的缩略图,

  • 首先,您可以参考此document设置文件关联协议,将音乐文件添加到关联列表,并提供图像文件。

  • 然后将您的应用设置为用于打开音乐文件的默认应用。


如果您不打算建立文件类型关联。有一种简单的方法,您可以使用图像文件而不是GetThumbnailAsync()方法,这意味着不要获取缩略图,而是直接在UI上显示所选图像。

最诚挚的问候。

© www.soinside.com 2019 - 2024. All rights reserved.