ios AudioUnit 录制播放 pcm
总结:AudioUnit 是个很容易控制的音频模块,但同时需要注意的地方也很多,下边是我边录音边放音的功能,希望对初学者能够有所帮助
1. 音频初始化
- (void)initRemoteIO {
AudioUnitInitialize(audioUnit);
[self initAudioSession];
[self initBuffer];
[self initAudioComponent];
[self initFormat];
[self initAudioProperty];
[self initRecordeCallback];
[self initPlayCallback];
}
2. 初始化 initAudioSession
- (void)initAudioSession {
NSError *error;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
[audioSession setPreferredSampleRate:44100 error:&error];
[audioSession setPreferredInputNumberOfChannels:1 error:&error];
[audioSession setPreferredIOBufferDuration:0.022 error:&error];
}
3. 初始化initBuffer
- (void)initBuffer {
UInt32 flag = 0;
AudioUnitSetProperty(audioUnit,
kAudioUnitProperty_ShouldAllocateBuffer,
kAudioUnitScope_Output,
INPUT_BUS,