Iphone 系统声音服务赢得';t连接到汽车时不播放音频';s蓝牙

Iphone 系统声音服务赢得';t连接到汽车时不播放音频';s蓝牙,iphone,ios,audio,sdk,system,Iphone,Ios,Audio,Sdk,System,我正在使用系统声音服务在我的应用程序中播放音频 使用扬声器、耳机甚至dock USB车载立体声连接时,它都能完美工作。 但是,当手机连接到车载蓝牙系统时,音频将无法播放 我想象,由于它连接到蓝牙设备,系统声音服务将尝试通过蓝牙发送到音频 有人知道如何防止音频路由尝试通过蓝牙发送到声音吗 以下是我正在使用的代码: CFURLRef soundFileURLRef; SystemSoundID soundFileObject; CFBundleRef mainBundle; ma

我正在使用系统声音服务在我的应用程序中播放音频 使用扬声器、耳机甚至dock 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);

有什么想法吗?

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

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
}

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