Я пытаюсь извлечь информацию из метаданных из .mp3-файла для iPhone-приложения. Я пробовал использовать AVAsset
как this. Он не работал, общие метаданные пустые. Но смелость и другое приложение iOS из магазина приложений могут получить данные метаданных. Я не знаю почему?Извлечение обложки MP3-альбома в iOS
Итак, я попытался извлечь то же самое с помощью кода ниже AudioToolBox
рамки
CFDictionaryRef piDict = nil;
UInt32 piDataSize = sizeof(piDict);
// Populates a CFDictionary with the ID3 tag properties
err = AudioFileGetProperty(fileID, kAudioFilePropertyInfoDictionary, &piDataSize, &piDict);
if(err != noErr) {
NSLog(@"AudioFileGetProperty failed for property info dictionary");
return nil;
}
// Toll free bridge the CFDictionary so that we can interact with it via objc
NSMutableDictionary* nsDict = [(__bridge NSDictionary*)piDict mutableCopy];
Возвращаемого все, кроме обложки альбома. Когда я попытался извлечь обложку альбома, используя kAudioFilePropertyAlbumArtwork
, я получил ошибку osstatus
(операция не может быть выполнена).
Итак, наконец, я попробовал свою удачу с ObjC
оберткой для libId3 (найдено here). Он работал отлично. Я мог бы получить обложку.
Мой вопрос в том, почему AVAsset
не смог получить данные ?. Что мне там не хватает? кому-то удалось заставить его работать ?. Образец будет оценен.
Почему kAudioFilePropertyAlbumArtwork
не удалось заполнить ?. Обе проблемы произошли со всеми файлами .mp3, которые у меня были.
Решение Обновление:
AVAsset
не работает для меня, потому что я сделал свой URL, используя
[NSURL URLWithString:[filePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]
вместо
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
Я проверил почту уже. Моя проблема - «commonMetadata» возвращает пустой массив. Я имею в виду никаких «ключей». Но информация есть, и я мог бы извлечь то же самое с помощью audiotoolbox. Это происходит со всем mp3-файлом, который у меня есть. – Vignesh
Я использовал этот код, и он отлично извлекает альбомArt. Можете ли вы связать mp3-файл, который вы использовали, или, может быть, ваш код? –
Я могу связать mp3-файл, который я использовал. Я попробовал тот же код, который вы вставили выше. Ссылка (http://starmusiq.com/Composer.asp?Composer=A.R.Rahman&RecNextPg=4) имеет несколько mp3-файлов, вы можете попробовать что угодно. – Vignesh