音频路由设置

更新时间:2025-01-13 02:02:23

ARTC SDK为用户托管了手机自身设备和不同外设之间切换的路由管理任务,并支持用户根据业务场景和需求自定义当前音频播放设备。

概述

音频路由(Audio Route)作为音频设备管理中的重要组成模块,用于判断和调整当前通话过程中声音播放的音频设备。设备类型除了包含手机自带的听筒和扬声器之外,还包括有线耳机和蓝牙耳机,以及多种类型的外置声卡等外设。

音频路由选择

优先级

音频路由的优先级在SDK内部已经定义好,并会根据当前外设的连接状态自动切换,切换的流程图如下所示:

image

默认音频路由

默认音频路由用于在入会前设置默认的音频路由设备,在听筒和扬声器之间选择。如果没有设置该功能,将默认使用扬声器。

说明

当连接的蓝牙耳机和有线耳机等其他外设断开连接时,将使用该功能设置的设备进行播放。

/**
* @brief 设置默认音频输出是否从扬声器出声,默认从扬声器出声
* @param defaultToSpeakerphone
* - true: 扬声器模式(默认扬声器)
* - false: 听筒模式
* @return
* - 0: 成功
* - <0: 失败
*/
public int setDefaultAudioRoutetoSpeakerphone(boolean defaultToSpeakerphone);

当前音频路由

当前音频路由用于在会议当中设置当前播放的音频设备,在听筒和扬声器之间选择。如果没有设置该功能, 将使用默认音频路由所设置的设备进行播放。

说明
  • 在连接有线耳机或者蓝牙耳机等其他外设的情况下,该函数调用不生效。

  • 当初始化音频参数AliRtcAudioScenario选择为AliRtcSceneMediaMode/AliRtcSceneMusicMode/AliRtcSceneChatroomMode时,不建议切换播放设备到听筒,部分Android机型不支持在非voip模式下使用听筒。如果有使用听筒的需求,请将AliRtcAudioScenario参数设置为AliRtcSceneDefaultMode

/**
 * @brief 设置音频输出为听筒还是扬声器
 * @param enable   true:扬声器模式(默认扬声器);false:听筒模式
 * @return
 * - 0: 成功
 * - <0: 失败
 */
public int enableSpeakerphone(boolean enable);
/**
* @brief 获取当前音频输出为听筒还是扬声器
* @return 
* - true: 扬声器模式;
* - false: 听筒模式
*/
public boolean isSpeakerOn();

音频路由设备回调

如果想获取音频播放设备切换时的回调需要注册并监听以下回调。

public abstract class AliRtcEngineEventListener {
    /**
     * @brief 警告通知
     * @details 如果engine出现warning,通过这个回调通知app
     * @param warn 警告类型
     * @param message 警告消息
     */
    public void onOccurWarning(int warn, String message);
}

warn返回值和设备类型对应关系如下表:

返回值

设备

返回值

设备

1

有线有麦耳机

2

听筒

3

有线无麦耳机

4

扬声器

6

SCO 蓝牙设备

7

A2DP 蓝牙设备

  • 本页导读 (1)
  • 概述
  • 音频路由选择
  • 优先级
  • 默认音频路由
  • 当前音频路由
  • 音频路由设备回调
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等