IVideoDeviceManager
视频设备管理方法。
IVideoDeviceManager 接口类提供用于测试视频设备的相关接口。你可以通过实例化 IVideoDeviceManager 类来获取 IVideoDeviceManager 接口。
enumerateVideoDevices
获取系统中所有的视频设备列表。
virtual IVideoDeviceCollection* enumerateVideoDevices() = 0;
该方法返回一个 IVideoDeviceCollection 对象,包含系统中所有的视频设备。通过 IVideoDeviceCollection 对象,App 可以枚举视频设备。 App 必须调用 release 方法在使用过后释放返回的对象。
返回值
- 方法调用成功: 返回一个 IVideoDeviceCollection 对象,其中包含系统中所有视频设备。
- 方法调用失败: NULL。
getCapability
获取视频采集设备在指定的视频格式下的详细视频帧信息。
virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0;
在调用 numberOfCapabilities 获取视频采集设备支持的视频格式数量后,你可以调用该方法获取指定索引号支持的具体视频帧信息。
参数
- deviceIdUTF8
- 视频采集设备的 ID。
- deviceCapabilityNumber
- 视频格式的索引号。如果 numberOfCapabilities 的返回值为 i,则该参数取值范围为[0,i)。
- capability
- 输出参数。表示指定视频格式的具体信息,包括宽度(px),高度(px)和帧率(fps)。详见 VideoFormat。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
getDevice
获取当前使用的视频采集设备。
virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
参数
- deviceIdUTF8
- 输出参数。设备 ID。最大长度为 MAX_DEVICE_ID_LENGTH_TYPE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
numberOfCapabilities
获取指定视频采集设备支持的视频格式数量。
virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0;
视频采集设备可能支持多种视频格式,每一种格式都支持不同的视频帧宽度、视频帧高度、帧率组合。
你可以通过调用该方法,获取指定的视频采集设备可支持多少种视频格式,然后调用 getCapability 获取指定视频格式下的具体视频帧信息。
参数
- deviceIdUTF8
- 视频采集设备的 ID。
返回值
- > 0: 方法调用成功。返回该设备支持的视频格式数量。例如:如果指定的摄像头支持 10 种不同的视频格式,则返回值为 10。
- ≤ 0: 方法调用失败。
release
释放 IVideoDeviceManager 对象占用的所有资源。
virtual void release() = 0;
setDevice
通过设备 ID 指定视频采集设备。
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
注意: 插拔设备不会改变设备 ID。
参数
- deviceId
-
设备 ID。可通过调用 enumerateVideoDevices 方法获取。
最大长度为 MAX_DEVICE_ID_LENGTH_TYPE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。