Come ottenere il bitrate del file audio nel cacao
-
21-08-2019 - |
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?
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.