通用设备管理
enumerateDevices:
枚举系统中的所有音频和视频设备。
Objective-C
- (NSArray<AgoraRtcDeviceInfo *> * _Nullable)enumerateDevices:(AgoraMediaDeviceType)type NS_SWIFT_NAME(enumerateDevices(_:));
该方法返回一个 NSArray 对象,其中包含系统中的所有音频和视频设备。你可以使用 NSArray 类型的 AgoraRtcDeviceInfo 对象来枚举设备。
信息
请勿在主线程中调用此方法。
参数
- type
- 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 AgoraMediaDeviceType。
返回值
- 方法调用成功,返回一个包含所有音频和视频设备的
NSArray对象,详见 AgoraRtcDeviceInfo。 - 方法调用失败,返回 nil。
getDeviceInfo:
获取当前设备名称。
Objective-C
- (AgoraRtcDeviceInfo * _Nullable)getDeviceInfo:(AgoraMediaDeviceType)type NS_SWIFT_NAME(getDeviceInfo(_:));
你可以通过该方法,根据 type 参数的设置,获取当前的音频或视频采集设备。
参数
- type
- 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 AgoraMediaDeviceType。
返回值
- 方法调用成功时,返回一个 AgoraRtcDeviceInfo 对象。
- 方法调用失败时,返回 nil。
getDeviceVolume:
获取当前设备的音量。
Objective-C
- (int)getDeviceVolume:(AgoraMediaDeviceType)type NS_SWIFT_NAME(getDeviceVolume(_:));
参数
- type
- 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 AgoraMediaDeviceType。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
monitorDeviceChange:
监控设备状态变化。
Objective-C
- (void)monitorDeviceChange:(BOOL)enabled NS_SWIFT_NAME(monitorDeviceChange(_:));
你可以通过该方法监控外部音视频设备(如外接摄像头)的插拔和更换。
参数
- enabled
- 是否监控设备状态变化:
- YES:开启设备状态监控。
- NO:关闭设备状态监控。
setDeviceVolume:volume:
设置指定设备的音量。
Objective-C
- (int)setDeviceVolume:(AgoraMediaDeviceType)type volume:(int)volume NS_SWIFT_NAME(setDeviceVolume(_:volume:));
设置音频或视频采集或播放设备的音量。
信息
请在加入频道后调用该方法。
参数
- type
- 设备类型,包括音频采集、音频播放、视频采集或视频播放设备,详见 AgoraMediaDeviceType。
- volume
- 指定设备的音量,取值范围为 [0, 255]。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
rtcEngine:device:type:stateChanged:
报告设备状态的变化回调。
Objective-C
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine device:(NSString * _Nonnull)deviceId type:(AgoraMediaDeviceType)deviceType stateChanged:(NSInteger)state NS_SWIFT_NAME(rtcEngine(_:device:type:stateChanged:));
信息
该回调仅适用于 macOS 平台。
调用时机
该回调在设备状态发生变化时被触发。
参数
- engine
- 你使用的 AgoraRtcEngineKit 实例。详见 AgoraRtcEngineKit。
- deviceId
- 设备的 ID。
- deviceType
- 设备类型,详见 AgoraMediaDeviceType。
- state
- 设备的状态:
- 0:已添加。
- 8:已移除。