是否可以从 iPhone 的内置麦克风接收音频输入,并同时通过蓝牙耳机播放该音频?
我的目标是始终使用内置麦克风作为输入设备,即使输出设备是耳机,因为内置麦克风在我的用例中更方便。
当输出设备是有线耳机时,我知道如何实现我的目标,比如与 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;
}
}
Run Code Online (Sandbox Code Playgroud)
通过调用上述方法,输入设备将从有线耳机的麦克风切换到iPhone的内置麦克风,而输出设备不受影响,因此iPhone将从内置麦克风录音并通过有线耳机播放。这是我所期望的。
问题是,当耳机是蓝牙耳机时,这种方法不起作用。如果我把蓝牙耳机连接到iPhone,然后调用上面的方法,内置麦克风会变成输入设备,这很好,但输出设备也会变成iPhone的接收器,这很糟糕。
蓝牙耳机的输入和输出似乎被锁定在一起:您要么同时使用它们,要么不使用它们。我的目标真的不可能吗?或者有没有办法克服明显的限制?