Как я могу запросить метаданные главы из файла m4a?

Мне нужно написать код, который позволит мне запросить файл m4a и извлечь информацию о главе. Включая:

  • название главы
  • время начала главы
  • обложка главы

Я сделал быстрый поиск, и кажется, что Apple рассматривает это как конфиденциальную информацию? Я нашел несколько обсуждений, но большинство из них были из 2005 года. Также здесь было несколько похожих вопросов, но больше для СОЗДАНИЯ файлов m4a с главами, а не для запросов.

Это просто то, что мне нужно сделать своими руками, потому что у меня нет подходящего API для Apple? Или я упускаю что-то очевидное?

Кроме того, в идеале мне нужна любая техника, которую я в конечном итоге буду использовать для работы с iPhone.


person pj4533    schedule 16.06.2009    source источник
comment
Я только что узнал кое-что новое, что может вам помочь: программа aTunes, похоже, захватывает метаданные из файлов m4a. Возможно, стоит посмотреть, как это делается, если вы свободно владеете Java.   -  person BobMcGee    schedule 30.06.2009


Ответы (4)


Система тегов метаданных является собственностью Apple. Чтобы работать с тегами, вам нужно (вздохнуть) перепроектировать их или работать с библиотекой, в которой это уже сделано.

Я нашел следующие ссылки, но, честно говоря, похоже, что вам придется вытащить шестнадцатеричный редактор.

Информация о двоичном формате (базовая спецификация для общих тегов)

Библиотека Perl для работы с файлами M4A.

person BobMcGee    schedule 24.06.2009
comment
спасибо примерно то что я понял. штопать. Однако похоже, что они ДВИГАЮТСЯ в этом направлении (по крайней мере, в iPhone SDK). Потому что у них есть раздел свойств для подкастов в документах SDK, но сейчас в нем указано только название. - person pj4533; 25.06.2009

Оказывается, это намного проще, чем здесь, в «ответах». Не уверен, что это работает на iPhone, но я только что проверил это в приложении командной строки:

QTMovie* movie = [QTMovie movieWithFile:@"filename.m4a" error:nil];

NSInteger numChapters = [movie chapterCount];
NSLog(@"Number of Chapters: %d", numChapters);

NSArray* chapterArray = [movie chapters];
for ( NSDictionary* chapDict in chapterArray )
{
    NSLog(@"%@", [chapDict objectForKey:@"QTMovieChapterName"] );
}

Проще простого. ДОХ!

person pj4533    schedule 22.07.2009

эта библиотека должна удовлетворить ваши потребности, но я думаю, что ее невозможно запустить на iphone без джейлбрейка. http://wmptagext.sourceforge.net/

ой, если вам нужно, чтобы он работал на iphone, вероятно, есть Apple API для получения этой информации. /me выглядит так, будто вам нужно поиграться с библиотекой ipodlibrary....

http://developer.apple.com/iphone/library/documentation/Audio/Conceptual/iPodLibraryAccess_Guide/UsingTheiPodLibrary/UsingTheiPodLibrary.html#//apple_ref/doc/uid/TP40008765-CH101-SW1

person mog    schedule 19.06.2009

Если рассматриваемые файлы находятся в библиотеке iPod, возможно, вы сможете получить информацию через интерфейс запросов MPMediaLibrary (3.0 и выше).

person Rhythmic Fistman    schedule 19.06.2009
comment
Да, я изучил это, особенно свойства MPMediaItem. Такие вещи, как MPMediaItemPropertyTitle и тому подобное. Но нигде не упоминаются главы или изображения, связанные с главами. Как будто они просто пропустили это. Ну что ж, я думаю, я вынужден просто свернуть свой собственный? Разве что у кого-то есть идея получше? - person pj4533; 19.06.2009
comment
Если файлы находятся в библиотеке iPod, возможности создания собственных файлов довольно ограничены. Ваше приложение находится в песочнице. - person Rhythmic Fistman; 21.06.2009