문제

kaudiofilepropertybitrate 상수를 사용한 AudiofilegetProperty 함수에서 오디오 파일에서 Bitrate 정보를 가져와야합니다. Kaudiofepropertyinfodictionary와 동일하게, 결과 사전에는 비트 전송 정보가 포함되어 있지 않습니다. MP3의 경우 원시 데이터에서 이것을 수동으로 얻으려고 노력하지만 M4A 및 기타와 같은 다른 파일 형식을 지원해야합니다. 이것을 할 다른 방법이 있습니까?

도움이 되었습니까?

해결책

파일을 다루는 경우 항상 Spotlight Metadata API를 사용해 볼 수 있습니다. 예를 들어, 당신이 당신의 오디오 파일로가는 경로가 nsstring 또는 cfstringref로 'path'라고하는 경로를 가지고 있다고 가정합니다.

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

이상적이지는 않지만 적어도 다른 API가 작동하지 않는 이유를 제안하기 위해 더 많은 배경 정보를 제공 할 수 있습니다.

내가 생각할 수있는 유일한 것 : Kaudiofipropertybitrate는 OS X 10.5에만 정의되어 있습니다. 10.4 이하로 실행중인 경우 코드는 여전히 실행되지만 Audiofile 프레임 워크는 Bitrate 속성에 대해 전혀 알지 못하므로 0을 반환 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top