【问题标题】:iOS 7 Bluetooth Output not working for AVAudioSessionCategoryPlayAndRecordiOS 7 蓝牙输出不适用于 AVAudioSessionCategoryPlayAndRecord
【发布时间】:2014-01-03 00:11:03
【问题描述】:

在我的应用程序中,如果 iPhone 连接到蓝牙耳机,则通过蓝牙播放声音。否则使用默认扬声器。

这是我的代码

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil];
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVoiceChat error:nil];
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];

但是,当我尝试使用类别 setCategory:AVAudioSessionCategoryPlayAndRecord。到蓝牙设备的路由停止工作..我不知道为什么。因为按道理,蓝牙选项应该只适用于 Record 或 PlayAndRecord 类别...

/* 仅对 AVAudioSessionCategoryRecord 和 AVAudioSessionCategoryPlayAndRecord 有效 */

补充:我可以只用蓝牙输出吗(输入仍然使用手机的默认麦克风)?

更新

我通过先调用 setMode,然后调用 setCategory 来更改顺序。它适用于第一次运行应用程序(调用)。当我再次尝试执行相同操作时,currentRoute 仍然给我 output = Bluetooth 但实际输出返回到默认手机前置扬声器。

【问题讨论】:

  • 这帮助我解决了一个稍微不同的问题。谢谢!
  • 你的问题包含了我的答案。谢谢!

标签: ios iphone objective-c ios7 bluetooth


【解决方案1】:

自从我发布这个问题以来已经有一段时间了,我忘记了到底是什么问题......如果我没记错的话,那是由于另一个库不断重写输出路径。不知何故,我修复了它并让它按我想要的方式工作。

我将代码贡献给了 Jawbone 的 AudioSessionManager 库。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2021-06-13
    相关资源
    最近更新 更多