桌面端视频设备管理
enumerateVideoDevices
获取系统中所有的视频设备列表。
virtual IVideoDeviceCollection* enumerateVideoDevices() = 0;
注意: 该方法仅适用于 Windows 和 macOS。
该方法返回一个 IVideoDeviceCollection
对象,包含系统中所有的视频设备。通过 IVideoDeviceCollection
对象,App 可以枚举视频设备。
App 必须调用 release
方法在使用过后释放返回的对象。
返回值
- 方法调用成功: 返回一个
IVideoDeviceCollection
对象,其中包含系统中所有视频设备。
getCapability
获取视频采集设备在指定的视频格式下的详细视频帧信息。
virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0;
注意: 该方法仅适用于 Windows 和 macOS。
在调用 numberOfCapabilities
获取视频采集设备支持的视频格式数量后,你可以调用该方法获取指定索引号支持的具体视频帧信息。
参数
参数名 | 描述 |
---|---|
deviceIdUTF8 | 视频采集设备的 ID。 |
deviceCapabilityNumber | 视频格式的索引号。如果 |
capability | 输出参数。表示指定视频格式的具体信息,包括宽度(px),高度(px)和帧率(fps)。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
onVideoDeviceStateChanged
视频设备变化回调。
virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
(void)deviceId;
(void)deviceType;
(void)deviceState;
}
该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
注: 该回调仅适用于 Windows 和 macOS。
参数
参数名 | 描述 |
---|---|
deviceId | 设备 ID。 |
deviceType | 设备类型。详见 |
deviceState | 设备状态。 |
getCount
getDevice
获取某个被索引的视频采集设备的指定信息。
virtual int getDevice(int index,
char deviceName[MAX_DEVICE_ID_LENGTH],
char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
参数
参数名 | 描述 |
---|---|
index | 指定的索引值,必须小于 |
deviceName | 设备名称。最大长度为 |
deviceId | 视频设备的设备 ID。最大长度为 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getDevice
获取当前使用的视频采集设备。
virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
注意: 该方法仅适用于 Windows 和 macOS。
参数
参数名 | 描述 |
---|---|
deviceIdUTF8 | 输出参数。设备 ID。最大长度为 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
numberOfCapabilities
获取指定视频采集设备支持的视频格式数量。
virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0;
注意: 该方法仅适用于 Windows 和 macOS。 视频采集设备可能支持多种视频格式,每一种格式都支持不同的视频帧宽度、视频帧高度、帧率组合。
你可以通过调用该方法,获取指定的视频采集设备可支持多少种视频格式,然后调用 getCapability
获取指定视频格式下的具体视频帧信息。
参数
参数名 | 描述 |
---|---|
deviceIdUTF8 | 视频采集设备的 ID。 |
返回值
-
> 0: 方法调用成功。返回该设备支持的视频格式数量。例如:如果指定的摄像头支持 10 种不同的视频格式,则返回值为 10。
-
≤ 0: 方法调用失败。详见
错误码
了解详情和解决建议。
queryCodecCapability
查询当前设备支持的视频编解码能力。
virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0;
v4.2.0
参数
参数名 | 描述 |
---|---|
codecInfo | 输入和输出参数,表示设备视频编码能力的数组。详见
|
size | 输入和输出参数,表示
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
release
release
setCameraDeviceOrientation
设置采集视频的旋转角度。
virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
注意:
-
该方法仅适用于 Windows。
-
该方法必须在
enableVideo
后调用,设置结果在摄像头成功开启后生效,即 SDK 触发onLocalVideoStateChanged
回调返回本地视频状态为LOCAL_VIDEO_STREAM_STATE_CAPTURING
(1) 后。 -
当视频采集设备不带重力感应功能时,你可以调用该方法手动调整采集到的视频画面的旋转角度。
参数
参数名 | 描述 |
---|---|
type | 视频源类型,详见 |
orientation | 顺时针旋转角度,详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setDevice
指定设备。
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
参数
参数名 | 描述 |
---|---|
deviceId | 设备 ID。最大长度为 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setDevice
通过设备 ID 指定视频采集设备。
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
注意:
-
插拔设备不会改变设备 ID。
-
该方法仅适用于 Windows 和 macOS。
参数
参数名 | 描述 |
---|---|
deviceId | 设备 ID。可通过调用 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。