首页 文章

AVAudioSession:在应用程序中录制音频,同时允许音乐应用程序通过蓝牙播放

提问于
浏览
1

我一直无法获得应用程序来录制音频,同时让iPhone音乐应用程序通过蓝牙扬声器播放 .

例如,如果我这样做:

[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];

session setActive:YES error:&error];

然后音乐应用程序将开始通过iPhone内置扬声器而不是蓝牙播放音乐 . 换句话说,似乎没有办法在应用程序中录制音频,仍然允许音乐通过蓝牙播放 .

如果我删除AVAudioSessionCategoryOptionDefaultToSpeaker,那么音频路由将切换到接收器 . 这比通过iPhone扬声器更糟糕 . 然后我可以设置 [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]; 强制输出回扬声器,但这并不能解决蓝牙问题 . 与AVAudioSessionCategoryOptionDefaultToSpeaker一样,输出现在将在扬声器上 .

如何录制音频而不会干扰其他应用程序(尤其是音乐应用程序)通过蓝牙播放?

1 回答

  • 0

    您认为必须将 AVAudioSessionCategoryOptionAllowBluetooth 添加到AVSession setCategory: 以允许蓝牙使用 .

    除此之外,选择用于录制的麦克风将是AVSession的 [[currentRoute inputs] firstObject] 中设置的麦克风 . 如果您的蓝牙设备有麦克风,您应该检查/更改它吗?

相关问题