Question

Je dois obtenir des informations bitrate des fichiers audio, pour une fonction de AudioFileGetProperty raison avec une constante kAudioFilePropertyBitRate retourne toujours 0 pour moi. La même chose avec kAudioFilePropertyInfoDictionary, le dictionnaire résultant ne marche pas contenir d'informations bitrate. Je voudrais essayer de manualy obtenir ce à partir des données brutes en cas de mp3, mais je dois prendre en charge différents formats de fichiers tels que m4a et d'autres. Est-il une autre façon de le faire?

Était-ce utile?

La solution

Si vous avez affaire à un fichier, vous pouvez toujours essayer d'utiliser l'API de métadonnées Spotlight. Par exemple, supposant que vous avez le chemin de votre fichier audio comme un NSString ou CFStringRef appelé « path »:

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

Il est pas idéal, mais peut au moins vous fournir quelques informations de base pour expliquer pourquoi l'autre API ne fonctionne pas.

La seule autre chose que je peux penser à: kAudioFilePropertyBitRate est uniquement définie dans OS X 10.5. Si vous utilisez sur 10.4 ou plus tôt, votre code continue à fonctionner, mais le cadre AudioFile ne connaîtra pas la propriété bitrate du tout, et serait donc probablement de retour à zéro.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top