NERtc Unity SDK  V5.4.5
Public 成员函数 | 所有成员列表
nertc.IVideoDeviceManager类 参考abstract
类 nertc.IVideoDeviceManager 继承关系图:

Public 成员函数

abstract IDeviceCollection EnumerateCaptureDevices ()
 
abstract int SetDevice (RtcVideoStreamType type, string deviceId)
 
abstract int GetDevice (RtcVideoStreamType type, out string deviceId)
 

详细描述

视频设备管理方法。
此接口类提供用于管理视频设备的相关接口。 可通过 IRtcEngine 类来获取 IVideoDeviceManager 接口。该接口类只支持 Windows 和 macOS 系统,不支持 Android 和 iOS 系统。

成员函数说明

◆ EnumerateCaptureDevices()

abstract IDeviceCollection nertc.IVideoDeviceManager.EnumerateCaptureDevices ( )
pure virtual

获取系统中所有的视频采集设备列表。
该方法返回一个 IDeviceCollection 对象,包含系统中所有的音频采集设备。通过 IDeviceCollection 对象,App 可以枚举视频采集设备。

注解
在使用结束后,App 需调用 Destroy 方法销毁返回的对象。
返回
  • 方法调用成功:一个 IDeviceCollection 对象,包含所有的视频采集设备。
  • 方法调用失败:NULL 。

◆ SetDevice()

abstract int nertc.IVideoDeviceManager.SetDevice ( RtcVideoStreamType  type,
string  deviceId 
)
pure virtual

指定视频采集设备。
通过本接口可以实现为主流或辅流视频通道选择视频采集设备。

自从
V4.6.20
使用前提
请在通过 StartVideoPreview 接口开启视频预览后调用该方法。
调用时机
请在初始化后调用该方法。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
type see RtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain(默认):主流。
  • kNERTCVideoStreamSub:辅流。
deviceId string 视频采集设备的设备 ID。可以通过 EnumerateCaptureDevices 接口获取。
示例代码
std::string deviceID = ...;//通过 enumerateCaptureDevices 获取
RtcVideoStreamType type = RtcVideoStreamType.kNERTCVideoStreamMain;
//设置主流通道的视频设备ID
_rtcEngine?.VideoDeviceManager?.SetDevice(deviceID, type);
//先获取辅流通道的视频管理对象
std::string deviceID = ...;//通过 enumerateCaptureDevices 获取
RtcVideoStreamType type = RtcVideoStreamType.kNERTCVideoStreamSub;
//设置辅流通道的视频设备ID
_rtcEngine?.VideoDeviceManager?.SetDevice(deviceID, type);
RtcVideoStreamType
Definition: RtcBase.cs:6626
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30003(kNERtcErrInvalidParam):参数错误,比如 deviceID 设置错误。
    • 30004(kNERtcErrNotSupported):不支持的操作,比如使用的是纯音频 SDK。
    • 30008(kNERtcErrDeviceNotFound):未找到设备。
    • 30009(kNERtcErrInvalidDeviceSourceID):非法的设备,比如设置的 deviceID 字符串含有非法字符。

◆ GetDevice()

abstract int nertc.IVideoDeviceManager.GetDevice ( RtcVideoStreamType  type,
out string  deviceId 
)
pure virtual

获取当前使用的视频采集设备信息。
通过本接口可以实现获取主流或辅流视频通道已选择的视频采集设备信息。

自从
V4.6.20
使用前提
请在通过 SetDevice 接口设置视频采集设备后调用该方法,否则返回空。
调用时机
请在初始化后调用该方法。
注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
参数名称 类型 描述
type see RtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain(默认):主流。
  • kNERTCVideoStreamSub:辅流。
deviceId string 视频采集设备的设备 ID。可以通过 EnumerateCaptureDevices 接口获取。
示例代码
//获取主流视频通道的设备信息
std::string device_id = "\\?\usb#vid_046d&pid_081b&mi_00#7&1f6973a&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"; //
可以通过 IVideoDeviceManager 接口获取device_id
RtcVideoStreamType type = RtcVideoStreamType.kNERTCVideoStreamMain;
_rtcEngine?.VideoDeviceManager?.SetDevice(device_id.c_str(), type);
//获取辅流通道的设备信息
std::string device_id = "\\?\usb#vid_046d&pid_081b&mi_00#7&1f6973a&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"; //
可以通过 IVideoDeviceManager 接口获取device_id
RtcVideoStreamType type = RtcVideoStreamType.kNERTCVideoStreamSub
_rtcEngine?.VideoDeviceManager?.SetDevice(device_id.c_str(), type);
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30004(kNERtcErrNotSupported):不支持的操作,比如使用的是纯音频 SDK。

该类的文档由以下文件生成: