Domanda

Ho bisogno di ottenere informazioni bitrate da file audio, per qualche funzione AudioFileGetProperty ragione con kAudioFilePropertyBitRate costante restituisce sempre 0 per me. Lo stesso con kAudioFilePropertyInfoDictionary, il dizionario risultante doesnt contengono informazioni bitrate. Vorrei provare a manualy ottenere questo dai dati grezzi in caso di mp3, ma ho bisogno di supportare diversi formati di file come m4a e altri. C'è un altro modo per fare questo?

È stato utile?

Soluzione

Se hai a che fare con un file, si può sempre provare a utilizzare l'API di metadati Spotlight. Per esempio, a patto di avere il percorso del file audio come un NSString o CFStringRef chiamati 'percorso':

MDItemRef item = MDItemCreate( kCFAllocatorDefault, path );
CFNumberRef audioBitrate = MDItemCopyAttribute( item, kMDItemAudioBitrate );
CFNumberRef totalBitrate = MDItemCopyAttribute( item, kMDItemTotalBitrate );
CFRelease( item );

Non è l'ideale, ma potrebbe almeno fornire qualche informazione in più sfondo di suggerire perché l'altro API non funziona.

L'unica altra cosa che posso pensare: kAudioFilePropertyBitRate è definito solo in OS X 10.5. Se siete in esecuzione su 10.4 o precedenti, il codice sarà ancora correre, ma il quadro AudioFile non saprà circa la proprietà bitrate a tutti, e sarebbe quindi probabile tornare a zero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top