2012-12-19 4 views
4

이로드 .wav 파일의 바이트 수를 얻기 위해 아이폰 OS에서 쉽게 :AudioFileID의 샘플링 속도는 어떻게 구합니까?

UInt64 dataSize = 0; // dataSize 
UInt32 ps = sizeof(UInt64); // property size 
if(AudioFileGetProperty(fileId, kAudioFilePropertyAudioDataByteCount, &ps, &dataSize)) 
    puts("error retriving data chunk size"); 
return dataSize ; 

그러나 in the documentation가 나는 PCM 웨이브 파일의 샘플링 속도를 확인하는 방법에 대한 정보를 찾을 수 없습니다.

답변

5

대답은 AudioStreamBasicDescription입니다. 당신이해야 할 일은 다음과 같습니다 :

UInt32 getAudioDataSamplingRate(AudioFileID fileId) 
{ 
    AudioStreamBasicDescription bsd; 
    UInt32 ps = sizeof(AudioStreamBasicDescription) ; 
    if(AudioFileGetProperty(fileId, 
     kAudioFilePropertyDataFormat, &ps, &bsd)) 
    puts("error retriving af basic description"); 
    return bsd.mSampleRate ; 
}