# 音频管理
音频设备管理主要用到 JCMediaDevice 类中的方法,具体如下:
# 选择音频输入设备
在发起通话前或者加入频道前,您可以通过设置 audioParam (opens new window) 属性来选择音频输入的设备。
// 1. 使用默认音频源
mMediaDevice.audioParam.audioInputDevice = JCMediaDevice.JCMediaDeviceAudioParam.INPUT_DEFAULT;
// 2. 发起通话,内部会自动调用 startAudio()方法开启音频
mCall.call("userID",true , new JCCall.CallParam("extraParam", "ticket"));
音频输入设备分为以下几中类型:
静态变量名 | 值 | 含义 |
---|---|---|
INPUT_DEFAULT | DEFAULT | 默认音频源 |
INPUT_MIC | MIC | 麦克风音频源 |
INPUT_VOICE_UPLINK | VOICE_UPLINK | 语音呼叫上行链路(Tx)音频源 |
INPUT_VOICE_DOWNLINK | VOICE_DOWNLINK | 语音呼叫下行(Rx)音频源 |
INPUT_VOICE_CALL | VOICE_CALL | 语音通话上行加下行音频源 |
INPUT_CAMCORDER | CAMCORDER | 调整了用于视频录制的麦克风音频源,方向相同作为相机(如果有) |
INPUT_VOICE_RECOGNITION | VOICE_RECOGNITION | 麦克风音源经过调整,可进行语音识别 |
INPUT_VOICE_COMMUNICATION | IVOICE_COMMUNICATION | 已针对语音通信(如VoIP)调整了麦克风音频源。例如,如果可供使用的话,它将使用回声消除或自动增益控制 |
# 获取音频路由类型
/**
* 音频路由类型
*
* @return 音频路由类型
*/
public abstract int getAudioRouteType();
音频路由类型(AudioRouteType)有以下几种
/** 听筒 */
public static final int AUDIO_ROUTE_RECEIVER = 0;
/** 扬声器 */
public static final int AUDIO_ROUTE_SPEAKER = 1;
/** 有线耳机 */
public static final int AUDIO_ROUTE_HEADSET = 2;
/** 蓝牙耳机 */
public static final int AUDIO_ROUTE_BLUETOOTH = 3;
# 开启/关闭扬声器
/**
* 开启/关闭扬声器
*
* @param enable 是否开启
*/
public abstract void enableSpeaker(boolean enable);
# 开启/关闭音频设备
/**
* 启动音频,一般正式开启通话前需要调用此接口
*
* @return 成功返回 true,失败返回 false
*/
public abstract boolean startAudio();
TIP
从 JCSDK-2.3.1-202009101 版本开始弃用,在通话连接中或者加入频道成功时,内部会自动调用此方法来启动音频
/**
* 停止音频,一般在通话结束时调用
*
* @return 成功返回 true,失败返回 false
*/
public abstract boolean stopAudio();
TIP
从 JCSDK-2.3.1-202009101 版本开始弃用,在通话挂断时或者离开频道时,内部会自动调用此方法来停止音频
示例代码
// 开启扬声器
mediaDevice.enableSpeaker(true);
// 开启音频设备
mediaDevice.startAudio();
// 关闭音频设备
mediaDevice.stopAudio();