在iOS中通过蓝牙播放时从内置麦克风录制

是否有可能从iPhone的内置麦克风接收audioinput,并通过蓝牙耳机同时播放该audio?

我的目标是始终使用内置麦克风作为input设备,即使输出设备是耳机,因为内置麦克风在我的使用情况中更方便。

当输出设备是有线耳机时,我知道如何实现我的目标,就像iPhone捆绑在一起一样。 我只需插入有线耳机,然后调用以下方法:

- (void)selectBuiltInMicrophone { AVAudioSession *session = [AVAudioSession sharedInstance]; for (AVAudioSessionPortDescription *port in session.availableInputs) if ([port.portType isEqualToString:AVAudioSessionPortBuiltInMic]) { NSError *error; [session setPreferredInput:port error:&error]; break; } } 

通过调用上述方法,input设备将从有线耳机的麦克风切换到iPhone的内置麦克风,而输出设备不受影响,所以iPhone将从内置麦克风录音,并通过有线耳机播放。 这是我所期望的。

问题是,当耳机是蓝牙耳机时,此方法不起作用。 如果我将蓝牙耳机连接到iPhone,然后调用上述方法,内置的麦克风将成为input设备,这是伟大的,但输出设备也将更改为iPhone的接收器,这是不好的。

蓝牙耳机的input和输出似乎是locking在一起的:您既可以使用它们,也可以不使用它们。 我的目标真的不可能吗? 或者有办法克服明显的局限性?

无法从iPhone的内置麦克风接收audioinput,并通过蓝牙耳机同时播放该audio

  1. 有一种可以像对讲机一样使用的预防措施。
  2. 你必须创build两个会话。 意思是在录制audio时,你必须启用录音和录音的audio会话。
  3. 播放时必须将选项设置为audiosession(允许蓝牙)。
  4. 录音时您必须设置录音和播放。