你如何获得AudioFileID的采样率?

bob*_*obo 4 wav rate sampling ios

在iOS中很容易获得加载的.wav文件中的字节数:

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

但是在文档中我似乎无法找到有关如何确定PCM波形文件采样率的任何信息.

bob*_*obo 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 ;
}
Run Code Online (Sandbox Code Playgroud)