相关疑难解决方法(0)

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

是否可以从 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的接收器,这很糟糕。

蓝牙耳机的输入和输出似乎被锁定在一起:您要么同时使用它们,要么不使用它们。我的目标真的不可能吗?或者有没有办法克服明显的限制?

iphone audio bluetooth ios avaudiosession

7
推荐指数
1
解决办法
3862
查看次数

标签 统计

audio ×1

avaudiosession ×1

bluetooth ×1

ios ×1

iphone ×1