c# - 如何在 Win8 C# 应用程序中设置专辑插图?

标签 c# windows-8 albumart

我希望能够拍摄现有照片并将其设置为专辑插图。

我可以使用 GetThumbnailAsync 给我一个缩略图,并使用 GetOutputStream 获取缩略图输出流。不幸的是,它不可写。

如何在 Win8 C# 应用程序中为项目设置专辑封面(或任何缩略图)?

当前(非工作)代码。当 outStream 因拒绝访问错误而刷新时它会死掉

    FileOpenPicker fileopenpicker = new FileOpenPicker();

    fileopenpicker.FileTypeFilter.Add(".jpg");
    fileopenpicker.FileTypeFilter.Add(".png");

    fileopenpicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;// | PickerLocationId.DocumentsLibrary | PickerLocationId.PicturesLibrary | PickerLocationId.MusicLibrary;

    var singlefileoperation = await fileopenpicker.PickSingleFileAsync();
    var read = await singlefileoperation.OpenAsync(FileAccessMode.Read);

    StorageFile replay = currentlyPlaying;
    TimeSpan pos = ME.Position;
    ME.Stop();

    //curren
    StorageItemThumbnail storageItemThumbnail = await currentlyPlaying.GetThumbnailAsync(ThumbnailMode.SingleItem);




    IOutputStream inputStreamAt = storageItemThumbnail.GetOutputStreamAt(0);
    Stream outStream = inputStreamAt.AsStreamForWrite();

    var inStreamAt = read.GetInputStreamAt(0);
    var inStream = inStreamAt.AsStreamForRead();
    await inStream.CopyToAsync(outStream);
    await outStream.FlushAsync();
    outStream.Dispose();
    inStream.Dispose();
    inStreamAt.Dispose();

最佳答案

TagLib Sharp应该对您正在寻找的内容有所帮助。

TagLib.File tagFile = TagLib.File.Create(c:/yourpath/yoursong.mp3);
IPicture newArt = new Picture(c:/yourimagepath/youralbumart.jpg);
tagFile.Tag.Pictures = new IPicture[1] {newArt};
tagFile.Save();

Code Source

编辑:更新了 TagLib Sharp 库的链接

关于c# - 如何在 Win8 C# 应用程序中设置专辑插图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16029437/

相关文章:

c# - Azure 上的 Google Analytics API

c# - 如何在 DDD 中对聚合建模并持久化到数据库

c# - StreamReader(string) 在 Metro 的 .NET 4.5 中不存在?

Bash:FFmpeg:自动化专辑艺术标签

android - 如何使用 Picasso 将歌曲专辑封面加载到 ImageView?

android - 使用 Exoplayer2,如何始终使用默认插图(即使音频嵌入了插图?)

c# - 在 C# 应用程序中获取插件或扩展功能的步骤是什么?

c# - 如何从 Excel 的 DataTable 中删除空行?

linq-to-sql - Windows 8的Metro风格应用程序中是否可以使用LINQ-to-SQL?

css - CSS Windows 8 Metro 风格应用程序中的 fr 单位是什么意思?