2009-05-13 5 views
4

오디오 파일에서 비트 전송률 정보를 가져와야합니다. kAudioFilePropertyBitRate 상수가있는 AudioFileGetProperty 함수는 항상 나를 위해 0을 반환합니다. kAudioFilePropertyInfoDictionary와 마찬가지로 결과 사전에는 비트 전송률 정보가 포함되지 않습니다. 나는 수동적으로 mp3의 경우 원시 데이터에서 이것을 얻으려고 노력할 것이지만 m4a와 다른 파일 포맷을 지원해야한다. 이것을 할 수있는 다른 방법이 있습니까?코코아에서 오디오 파일의 비트 전송률을 얻는 방법

답변

2

파일을 다루는 경우 항상 Spotlight 메타 데이터 API를 사용해 볼 수 있습니다. 예를 들어, 당신이있는 NSString 또는 CFStringRef가 '경로'라는으로 오디오 파일의 경로를 가정 : 그것은 이상적인 아니에요

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

,하지만 적어도 왜 다른 API를 제안하고 좀 더 배경 정보를 제공 할 수 있습니다 작동하지 않습니다.

내가 생각할 수있는 유일한 다른 것 : kAudioFilePropertyBitRate는 OS X 10.5에서만 정의됩니다. 10.4 또는 이전 버전에서 실행 중이면 코드는 계속 실행되지만 AudioFile 프레임 워크는 bitrate 속성에 대해 전혀 알지 못하므로 0을 반환합니다.

+0

정보 주셔서 감사합니다, 스포트 라이트 API가 내 마지막 수단이었습니다.이 작업을 수행 할 수있는 다른 오디오 API가 없는지 확인하고 싶었습니다. 10.5에서 실행중인 Im은 또한 minspec입니다. – stackzerad

관련 문제