# 音频管理

音频设备管理主要用到 JCMediaDevice 类中的方法,具体如下:

# 获取音频输入设备列表

通过 JCMediaDevice 类的 audioInputs 属性和 audioInput 属性获取音频输入设备列表及当前音频输入设备,将会返回 JCMediaDeviceAudio 对象。

/// 音频输入设备列表
NSArray<JCMediaDeviceAudio*>* __nonnull audioInputs;

/// 当前音频输入设备
JCMediaDeviceAudio* __nullable audioInput;

JCMediaDeviceAudio 对象的属性如下:

名称 类型 描述
audioId NSString 音频设备 id
audioName NSString 音频设备名字
input bool 输入还是输出设备

# 选择音频输入设备

在发起通话前或者加入频道前,您可以通过设置 audioInput (opens new window) 属性来选择音频输入的设备。

// 获取音频输入设备列表
NSArray<JCMediaDeviceAudio*>* devices = JCManager.shared.mediaDevice.audioInputs;
// 选择第一个音频输入设备
JCManager.shared.mediaDevice.audioInput = devices[0];

# 获取音频输出设备列表

通过 JCMediaDevice 类的 audioOutputs 属性和 audioOutput 属性获取音频输出设备列表及当前音频输出设备。

/// 音频输出设备列表
NSArray<JCMediaDeviceAudio*>* __nonnull audioOutputs;

/// 当前音频输出设备
JCMediaDeviceAudio* __nullable audioOutput;

JCMediaDeviceAudio 对象的属性如下:

名称 类型 描述
audioId NSString 音频设备 id
audioName NSString 音频设备名字
input bool 输入还是输出设备

示例代码

// 获取音频输入设备列表
NSArray<JCMediaDeviceAudio*>* audioInputDevices = mediaDevice.audioInputs;

// 获取音频输出设备列表
NSArray<JCMediaDeviceAudio*>* audioOutputDevices = mediaDevice.audioOutputs;

# 开启/关闭音频设备

/**
 *  @brief 启动音频,一般正式开启通话前需要调用此接口
 *  @return 成功返回 true,失败返回 false
 */
-(bool)startAudio;

/**
 *  @brief 停止音频,一般在通话结束时调用
 *  @return 成功返回 true,失败返回 false
 */
-(bool)stopAudio;

示例代码

// 打开音频设备
[mediaDevice startAudio];
// 关闭音频设备
[mediaDevice stopAudio];