Pregunta

necesito para obtener información tasa de bits de archivos de audio, por alguna razón la función AudioFileGetProperty con kAudioFilePropertyBitRate constante siempre devuelve 0 para mí. Lo mismo con kAudioFilePropertyInfoDictionary, el diccionario resultante doesnt contienen información tasa de bits. Me gustaría tratar de manualy obtener esta información de los datos en bruto en el caso de mp3, pero tengo que soportar diferentes formatos de archivo como M4A y otros. ¿Hay alguna otra manera de hacer esto?

¿Fue útil?

Solución

Si usted está tratando con un archivo, siempre se podría tratar de usar la API de metadatos de Spotlight. Por ejemplo, suponiendo que tiene la ruta de acceso al archivo de audio como un NSString o CFStringRef llamados 'camino':

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

No es lo ideal, pero al menos podría proporcionarle un poco más de información de base para sugerir por qué la otra API no está funcionando.

La única otra cosa que puedo pensar: kAudioFilePropertyBitRate sólo se define en OS X 10.5. Si se está ejecutando en 10.4 o anteriores, el código seguirá funcionando, pero el marco AudioFile no sabrá acerca de la propiedad bitrate en absoluto, y por lo tanto es probable que volver a cero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top