iOS利用AudioUnit实现音频边录边播功能
上一篇文章介绍了怎么用AudioUnit实现录音功能,今天在之前的录音基础上添加播放功能。
AVAudioSession配置和音频单元初始化和录音保持一致。
在录制过程中我们对音频单元配置了麦克风作为音频输入, 现在我们要实现播放功能,现在配置扬声器作为音频输出:
UInt32 flag = 1;
CheckStatus(AudioUnitSetProperty(_audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, 0, &flag, sizeof(flag)), @"扬声器配置失败", NO);
输出配置成功之后我们需要给输出配置对应的音频编码, 我们将输入输出音频编码保持一致:
CheckStatus(AudioUnitSetProperty(_ioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &_streamDescription, sizeof(_streamDescription)), @"设置麦克风音频参数", NO);
CheckStatus(AudioUnitSetProperty(_ioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &_streamDescription, sizeof(_streamDescription)), @"设置扬声器音频参数"