我一直无法获得应用程序来录制音频,同时让iPhone音乐应用程序通过蓝牙扬声器播放 .
例如,如果我这样做:
[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];
session setActive:YES error:&error];
然后音乐应用程序将开始通过iPhone内置扬声器而不是蓝牙播放音乐 . 换句话说,似乎没有办法在应用程序中录制音频,仍然允许音乐通过蓝牙播放 .
如果我删除AVAudioSessionCategoryOptionDefaultToSpeaker,那么音频路由将切换到接收器 . 这比通过iPhone扬声器更糟糕 . 然后我可以设置 [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
强制输出回扬声器,但这并不能解决蓝牙问题 . 与AVAudioSessionCategoryOptionDefaultToSpeaker一样,输出现在将在扬声器上 .
如何录制音频而不会干扰其他应用程序(尤其是音乐应用程序)通过蓝牙播放?
1 回答
您认为必须将
AVAudioSessionCategoryOptionAllowBluetooth
添加到AVSessionsetCategory:
以允许蓝牙使用 .除此之外,选择用于录制的麦克风将是AVSession的
[[currentRoute inputs] firstObject]
中设置的麦克风 . 如果您的蓝牙设备有麦克风,您应该检查/更改它吗?