【发布时间】:2014-07-16 17:52:31
【问题描述】:
我快疯了。
我有一个录音应用。我遇到了一个问题,当我打开我的应用程序时,如果我在蓝牙设备上听音乐,它会自动路由回手机内部扬声器。
无论如何,我希望一切都保持不变。即使当我开始录制时,如果用户正在蓝牙扬声器上收听某些内容,请继续这样做。用户有耳机吗?把音乐留在那里。让一切保持原样。
这就是我当前初始化会话的方式:
[[AVAudioSession sharedInstance]
setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionMixWithOthers | AudioSessionCategoryOptionAllowBluetooth
error: nil];
我允许它播放、录制、与其他人混音并允许蓝牙,那么为什么它将音频输出重新路由回内部扬声器?
谢谢
5 月 30 日编辑
我设法得到了更好的东西,但仍然缺少一些东西。
如果我添加这一行:
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
音乐保留在蓝牙设备中,但听起来很糟糕。
根据这个答案:https://stackoverflow.com/a/18541874/517688这是因为
EnableBluetoothInput 根据此影响输入和输出。还要记住,由于蓝牙输入设备的限制,音频将以 8000 Hz 播放
所以在使用蓝牙设备时,没有办法在不失真的情况下保持一切不变??
【问题讨论】:
-
希望下面的回答对你有帮助.. @Jan
-
如果您仍在使用 SO,您能否查看我 2018 年 4 月 9 日的问题并告诉我是否是相同/相似的问题?谢谢!!
-
@BooberBunz 不,不幸的是,这与您所经历的无关......
-
@BooberBunz 但我确实回答了你的问题!
标签: ios iphone objective-c bluetooth avaudiosession