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)), @"设置扬声器音频参数", NO);
注:这里肯定会有人有疑惑为什么麦克风音频参数选择Out

本文详细介绍了如何在iOS平台上利用AudioUnit实现音频的边录边播功能。在之前录音的基础上,通过配置AudioUnit,将扬声器设置为音频输出,保持输入输出音频编码一致,并设置回调函数,实现从麦克风采集到的音频直接通过扬声器播放。重点在于理解RemoteIO单元的输入输出结构,以及正确设置音频参数。
最低0.47元/天 解锁文章
589

被折叠的 条评论
为什么被折叠?



