系统声音服务连接到汽车的蓝牙时不会播放音频

Posted

技术标签:

【中文标题】系统声音服务连接到汽车的蓝牙时不会播放音频【英文标题】:System Sound Services Won't play audio when connected to a car's bluetooth 【发布时间】:2011-11-06 15:57:07 【问题描述】:

我正在使用系统声音服务在我的应用程序中播放音频 在使用扬声器、耳机甚至是底座 USB 汽车立体声连接时,它可以完美运行。 但是,当手机连接到车载蓝牙系统时,音频将无法播放。

我想,由于它连接到蓝牙设备,系统声音服务会尝试通过蓝牙发送到音频。

有谁知道如何防止音频路由尝试通过蓝牙发送到声音?

这是我正在使用的代码:

CFURLRef        soundFileURLRef;
SystemSoundID   soundFileObject;

CFBundleRef mainBundle;
mainBundle = CFBundleGetMainBundle ();

// Get the URL to the sound file to play
soundFileURLRef  =  CFBundleCopyResourceURL (
                                                 mainBundle,
                                                 CFSTR ("Alert6"),
                                                 CFSTR ("aif"),
                                                 NULL
                                                 );

// Create a system sound object representing the sound file
    AudioservicesCreateSystemSoundID (
                                      soundFileURLRef,
                                      &soundFileObject
                                      );

AudioServicesPlaySystemSound (soundFileObject);

有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以覆盖内部扬声器的输出

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; // lets the system sounds come out of the speaker
OSStatus err = AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
if (err != noErr) 
    // handle error

【讨论】:

嗨康尼。我以前试过这个,但它不起作用。连接耳机还是只连接蓝牙时,它是否也应该覆盖声音输出?

以上是关于系统声音服务连接到汽车的蓝牙时不会播放音频的主要内容,如果未能解决你的问题,请参考以下文章

当蓝牙耳机连接到 Apple Watch 时,触觉不会在后台播放

AVAudioPlayer 和 AVAudioSession 不会在 iPad(2 或其他)上播放蓝牙立体声

IOS 应用程序 - 蓝牙音频启用

iOS设置蓝牙外设播放音频

蓝牙耳机连接车辆为啥不能播放语音

电脑能不能同时输出两个音频设备?