iOS 音频呼叫路由更改仅适用于应用程序重新启动后

问题描述

我有一个可以拨打 VOIP 电话的应用程序。我正在使用以下代码将音频路由到蓝牙

- (void)configAudioSession:(AVAudioSession *)audioSession
{
  
     NSLog(@"config audio session");
    NSError *err = nil;
    [audioSession setCategory:AVAudioSessionCategoryPlayback
                  withOptions:AVAudioSessionCategoryOptionAllowBluetooth | AVAudioSessionCategoryOptionAllowBluetoothA2DP | AVAudioSessionCategoryOptionMixWithOthers
                        error:&err];
    if (err) {
        LOGE(@"Unable to change audio category because : %@",err.localizedDescription);
        err = nil;
    }
     [audioSession setMode:AVAudioSessionModeVoiceChat error:&err];
     [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];

    if (err) {
        LOGE(@"Unable to change audio mode because : %@",err.localizedDescription);
        err = nil;
    }
     [audioSession setActive:TRUE error:&err];
     if (err) {
         LOGE(@"Unable to active session because : %@",err.localizedDescription);
         err = nil;
     }

}

如果我们从 iPhone 设置(辅助功能-> 触摸-> 呼叫音频路由)中选择蓝牙耳机,此代码工作正常。但是在您将设置更改为自动并再次将其更改为蓝牙后,它不会在不重新启动应用程序的情况下将音频重定向到蓝牙耳机。从设备设置更改呼叫音频路由后是否必须重新启动应用程序?我如何在不重新启动应用程序的情况下实现这一目标。我在每次调用之前调用上面的代码

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...