5

Как я могу получить изображение AlbumArt в mp3-файле? Я разрабатываю приложение Windows Store с помощью C#.Получить альбом в формате .mp3 для Windows Store App

Класс MusicProperties дает мне имя исполнителя имени исполнителя vs. Но он не может дать мне альбом.

+0

Я думаю, что вам нужно используйте библиотеку чтения тегов ID3, потому что 'file.Properties.GetMusicPropertiesAsync();' не дает вам обложки альбомов. – Xyroid

+0

Я пытаюсь использовать taglib #, но когда я получу файл и создаю файл taglib, вы получите ошибку. Доступ закрыт. Должен быть другой путь. –

+0

Можете ли вы опубликовать код, который вы пробовали? – Xyroid

ответ

5

Проверьте образец MSDN, чтобы показать миниатюру любого файла. Он также состоит в том, как восстановить обложку альбома.

File and folder thumbnail sample

Если вы хотите сохранить обложку альбома проверить How to store save Thumbnail image in device in windows 8 metro apps c#

UPDATE 1

MediaFile является StorageFile. ImageControl является <Image ... />

using (StorageItemThumbnail thumbnail = await MediaFile.GetThumbnailAsync(ThumbnailMode.MusicView, 300)) 
{ 
    if (thumbnail != null && thumbnail.Type == ThumbnailType.Image) 
    { 
     var bitmapImage = new BitmapImage(); 
     bitmapImage.SetSource(thumbnail); 
     ImageControl.Source = bitmapImage; 
    } 
} 
+0

спасибо. Но как я могу использовать миниатюру в переменной BitmapImage? –

+0

Отъезд обновления 1. – Xyroid

+0

спасибо вам большое :) –

0

Я нашел решение здесь How to: Get IDE Tags and Thumbnails of a file

var bitmapImage = new BitmapImage(); 

//Get Album cover 
using (StorageItemThumbnail thumbnail = await file.GetThumbnailAsync(ThumbnailMode.MusicView, 300)) 
{ 
    if (thumbnail != null && thumbnail.Type == ThumbnailType.Image) 
    { 
     bitmapImage.SetSource(thumbnail); 
    } 
    else 
    { 
     //Error Message here 
    } 
} 
1

вот мой быстрый и короткий решение этой проблемы thirding TagLib #: (http://taglib.github.io/)

using TagLib; 
var file = TagLib.File.Create(filename); 
var bin = (byte[])(file.Tag.Pictures[0].Data.Data); 
imageBox.Image = Image.FromStream(new MemoryStream(bin)); 
Смежные вопросы