【问题标题】:AVAudioSession: Record audio in app while simultaneously allowing Music app to play over bluetoothAVAudioSession:在应用程序中录制音频,同时允许音乐应用程序通过蓝牙播放
【发布时间】:2016-05-03 06:11:57
【问题描述】:

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

例如,如果我这样做:

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

session setActive:YES error:&error];

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

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

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

【问题讨论】:

  • 找到任何解决方案???

标签: ios iphone bluetooth audio-recording avaudiosession


【解决方案1】:

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

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

【讨论】:

  • 好的,我会试试的。我之前尝试过允许蓝牙设置,这也导致蓝牙音乐停止,但我没有按照你的建议设置麦克风。
  • 注意,我之前在车里,它确实有一个麦克风,看起来应用程序正在尝试使用它。我现在尝试使用 setPrefferredInput 作为 builtInMic。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多