【发布时间】: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