通用设备管理
enumerateDevices
获取系统中所有的音视频设备。
- (NSArray<AgoraRtcDeviceInfo *> * _Nullable)enumerateDevices:(AgoraMediaDeviceType)type;
该方法返回一个 NSArray 对象,包含系统中所有的音视频设备。应用程序可以通过 AgoraRtcDeviceInfo
NSArray 对象枚举设备。
注意: 不要在主线程调用该方法。
参数
参数名 | 描述 |
---|---|
type | 设备的类型,包括音、视频采集或播放设备,详见 |
返回值
调用成功时,返回 AgoraRtcDeviceInfo
NSArray 对象,包含所有的音视频设备。
followSystemPlaybackDevice
followSystemRecordingDevice
getDefaultAudioDevice
获取系统默认的音频设备。
- (AgoraRtcDeviceInfo* _Nullable)getDefaultAudioDevice:(AgoraMediaDeviceType)type;
参数
参数名 | 描述 |
---|---|
type | 设备的类型,详见 |
返回值
-
调用成功时,返回
AgoraRtcDeviceInfo
对象,包含默认的音频设备信息。 -
调用失败时,返回
nil
。
getDeviceInfo
获取当前设备名称。
- (AgoraRtcDeviceInfo * _Nullable)getDeviceInfo:(AgoraMediaDeviceType)type;
该方法通过 type
参数获取当前音、视频采集或播放设备。
参数
参数名 | 描述 |
---|---|
type | 设备的类型,包括音、视频采集或播放设备,详见 |
返回值
-
调用成功时,返回
AgoraRtcDeviceInfo
-
调用失败时,返回
nil
getDeviceVolume
获取当前设备的音量。
- (int)getDeviceVolume:(AgoraMediaDeviceType)type;
参数
参数名 | 描述 |
---|---|
type | 设备的类型,包括音、视频采集或播放设备,详见 |
返回值
-
调用成功,返回设备的音量
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
monitorDeviceChange
监测设备变化。
- (void)monitorDeviceChange:(BOOL)enabled;
该方法用来开启设备插拔监测,这里设备指的是音视频外接设备,比如外接摄像头等。
参数
参数名 | 描述 |
---|---|
enabled | 是否开启监测:
|
setDevice
指定设备。
- (int)setDevice:(AgoraMediaDeviceType)type deviceId:(NSString * _Nonnull)deviceId;
参数
参数名 | 描述 |
---|---|
type | 设备的类型,包括音、视频采集或播放设备,详见 |
deviceId | 设备 ID。可通过 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setDeviceVolume
设置设备音量。
- (int)setDeviceVolume:(AgoraMediaDeviceType)type volume:(int)volume;
设置音、视频采集或播放设备的音量。
注意: 该方法需要在加入频道后调用。
参数
参数名 | 描述 |
---|---|
type | 设备的类型,包括音、视频采集或播放设备,详见 |
volume | 设备音量。取值范围 [0,255]。0 表示无声,255 表示最大音量。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
startAudioDeviceLoopbackTest
开始音频设备回路测试。
-(int)startAudioDeviceLoopbackTest:(int)indicationInterval;
该方法测试音频采集和播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地音频,然后使用音频播放设备播放出来。SDK 会按设置的时间间隔触发两个 reportAudioVolumeIndicationOfSpeakers
回调,分别报告音频采集设备(uid
= 0)和音频播放设置(uid
= 1)的音量信息。
注意:
-
该方法在加入频道前后都可调用。
-
该方法仅支持主播角色调用。
-
该方法仅在本地进行音频设备测试,不涉及网络连接。
-
完成测试后,必须调用
stopAudioDeviceLoopbackTest
停止音频设备回路测试。
参数
参数名 | 描述 |
---|---|
indicationInterval | SDK 触发 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
startPlaybackDeviceTest
启动音频播放设备测试。
- (int)startPlaybackDeviceTest:(NSString * _Nonnull)audioFileName;
该方法测试音频播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
调用该方法后,SDK 会每隔 100 ms 触发一次 reportAudioVolumeIndicationOfSpeakers
回调,报告 uid
= 1 及播放设备的音量信息。
注意:
- 该方法需要在加入频道前调用。
参数
参数名 | 描述 |
---|---|
audioFileName | 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
startRecordingDeviceTest
启动音频采集设备测试。
- (int)startRecordingDeviceTest:(int)indicationInterval;
该方法测试音频采集设备是否能正常工作。调用该方法后,SDK 会按设置的时间间隔触发 reportAudioVolumeIndicationOfSpeakers
回调,报告 uid
= 0 及采集设备的音量信息。
注:
- 该方法需要在加入频道前调用。
参数
参数名 | 描述 |
---|---|
indicationInterval | SDK 触发 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
stateChanged
设备状态改变回调。
- (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine device:(NSString* _Nonnull)deviceId
type:(AgoraMediaDeviceType)deviceType
stateChanged:(NSInteger)state;
参数
参数名 | 描述 |
---|---|
engine | |
deviceId | 设备 ID。 |
deviceType | 设备的类型,包括音、视频采集或播放设备,详见 |
state | 设备状态:
|
stopAudioDeviceLoopbackTest
停止音频设备回路测试。
-(int)stopAudioDeviceLoopbackTest;
注意:
-
该方法在加入频道前后都可调用。
-
该方法仅支持主播角色调用。
-
在调用
startAudioDeviceLoopbackTest
后,必须调用该方法停止音频设备回路测试。
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
stopRecordingDeviceTest
停止音频采集设备测试。
- (int)stopRecordingDeviceTest;
该方法停止音频采集设备测试。调用 startRecordingDeviceTest
后,必须调用该方法停止测试。
注:
- 该方法需要在加入频道前调用。
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。