2009-06-16 13 views
5

Ho bisogno di scrivere del codice che mi consenta di interrogare un file m4a ed estrarre le informazioni del capitolo. Tra cui:Come posso interrogare i metadati del capitolo da un file m4a?

  • nome del capitolo
  • tempo capitolo inizio
  • capitolo dell'opera

Ho fatto qualche ricerca veloce e sembra che questo è visto come informazioni riservate da parte di Apple? Ho trovato alcune discussioni, ma la maggior parte erano del 2005. Ci sono state anche alcune domande simili qui, ma più per CREARE file m4a con capitoli, non per interrogare.

È solo una cosa che devo fare in DIY, perché non c'è una bella API Apple da usare? O mi manca qualcosa di ovvio?

Inoltre, idealmente ho bisogno di qualsiasi tecnica che uso per lavorare su iPhone.

+0

Ho appena scoperto qualcosa di nuovo che potrebbe aiutarti: il programma aTunes sembra catturare i metadati dai file m4a. Potrebbe valere la pena vedere come funziona, se si parla correntemente Java. – BobMcGee

risposta

1

Il sistema di tag metadata è proprietario di Apple. Per lavorare con i tag, è necessario (sigh) eseguirne il reverse engineering o lavorare con una libreria che ha già eseguito questa operazione.

Ho trovato i seguenti collegamenti, ma onestamente sembra che dovrai estrarre l'editor esadecimale.

Binary format info (basic spec for generic tags)

Perl library for working with M4A files.

+0

grazie questo è quello che ho capito. maledettamente. Sembra che si stiano Muovendo in quella direzione (almeno nell'SDK di iPhone).Perché hanno una sezione di proprietà per i podcast nei documenti SDK, ma al momento elenca solo "Titolo". – pj4533

0

questa libreria dovrebbe risolvere i tuoi bisogni, ma non è eseguibile su iPhone senza jailbreak. http://wmptagext.sourceforge.net/

oops se ne avete bisogno per lavorare su iphone c'è probabilmente una mela api per ottenere queste informazioni./Mi sembra suona come è necessario giocare con la libreria ipodlibrary ....

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

0

Se i file in questione dal vivo nella libreria iPod, forse è possibile ottenere le informazioni tramite il MPMediaLibrary Interfaccia di query (3.0 in su).

+0

Sì, ho esaminato questo, in particolare le proprietà su MPMediaItem. Cose come MPMediaItemPropertyTitle e così via. Ma nulla menziona capitoli o immagini relative ai capitoli. È come se fossero saltati sopra. Oh beh, credo di essere costretto a "rollare il mio"? A meno che qualcun altro non abbia un'idea migliore? – pj4533

+0

Se i file si trovano nella libreria di iPod, le possibilità di eseguire il rollover sono piuttosto limitate. La tua app è in modalità sandbox. –

1

Risulta questo è molto più semplice che ha parlato qui "risposte". Non sono sicuro se questo funziona su iPhone, ma ho appena testato in una riga di comando app:

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"]); 
} 

Facile come torta. DOH!

+0

Non funziona su iOS (QTKit non è incluso nell'SDK) – pt2ph8