在代码中注册 AVAudioEngineConfigurationChange 通知,当采样率或通道数更改时,此通知将触发注册的回调函数。 当回调函数被调用时,我们必须注意避免死锁问题。因为该回调函数的执行可能会影响与该引擎连接的其他线程。 若在回调函数中需要对其他线程进行操作,则需要使用 @synchronized保护,或者使用 dispatch_async将其放入主队列(推荐)。 以下是一个示例代码:
// 注册 AVAudioEngineConfigurationChange 通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleConfigChange:) name:AVAudioEngineConfigurationChangeNotification object:nil];