我正在使用Audio Unit Framework在mac os x上开发VOIP应用程序.在我的程序中,我设置了输入AUHAL并使用默认流格式(44.1kHz,32位/通道)从麦克风中捕获音频.在这种情况下,我的程序工作正常.
这是代码:
//The default setting in my program
CheckError(AudioUnitGetProperty(m_audCapUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Output, //the value is 0
inputBus, //the value is 1
&m_audCapUnitOutputStreamFormat,
&propertySize),
"Couldn't get OutputSample ASBD from input unit") ;
//the inOutputSampleRate is 44100.0
m_audCapUnitOutputStreamFormat.mSampleRate = inOutputSampleRate ;
CheckError(AudioUnitSetProperty(m_audCapUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Output,
inputBus,
&m_audCapUnitOutputStreamFormat,
propertySize),
"Couldn't set OutputSample ASBD on input unit");
//
Run Code Online (Sandbox Code Playgroud)
由于我正在开发VOIP应用程序,默认格式(44.1kHz,32位/通道)不适合我的程序,所以我想将采样率更改为8kHz.我写了这段代码来改变程序中的格式:
//......
inOutputFormat.mSampleRate = 8000. ;
inOutputFormat.mFormatID = kAudioFormatLinearPCM ;
inOutputFormat.mChannelsPerFrame = 2 ;
inOutputFormat.mBitsPerChannel = 16 ;
inOutputFormat.mBytesPerFrame = 2 ;
inOutputFormat.mBytesPerPacket = …Run Code Online (Sandbox Code Playgroud)