LiteAVSDK
腾讯云音视频 SDK ,服务于数万家企业客户的高可用组件,致力于最大限度地节省您的研发成本。
TXDeviceManager

详细描述

Tencent Cloud Device Management Module

Module: TRTC 音视频设备管理模块 Function: 用于管理摄像头、麦克风和扬声器等音视频相关的硬件设备


结构体说明

◆ liteav::TXCameraCaptureParam

struct liteav::TXCameraCaptureParam

Public 成员函数

 TXCameraCaptureParam ()
 

成员变量

TXCameraCaptureMode mode
 
int width
 
int height
 

构造及析构函数说明

◆ TXCameraCaptureParam()

结构体成员变量说明

◆ height

int height

【字段含义】采集图像宽度

◆ mode

【字段含义】摄像头采集偏好

◆ width

int width

【字段含义】采集图像长度

◆ liteav::ITXDeviceInfo

class liteav::ITXDeviceInfo

Public 成员函数

virtual const char * getDeviceName ()=0
 
virtual const char * getDevicePID ()=0
 
virtual void release ()=0
 

构造及析构函数说明

◆ ~ITXDeviceInfo()

virtual ~ITXDeviceInfo ( )
inlineprotectedvirtual

成员函数说明

◆ getDeviceName()

virtual const char* getDeviceName ( )
pure virtual

device name (UTF-8)

◆ getDevicePID()

virtual const char* getDevicePID ( )
pure virtual

device PID (UTF-8)

◆ release()

virtual void release ( )
pure virtual

release function, don't use delete!!!

◆ liteav::ITXDeviceCollection

class liteav::ITXDeviceCollection

Public 成员函数

virtual uint32_t getCount ()=0
 
virtual const char * getDeviceName (uint32_t index)=0
 
virtual const char * getDevicePID (uint32_t index)=0
 
virtual const char * getDeviceProperties (uint32_t index)=0
 
virtual void release ()=0
 

构造及析构函数说明

◆ ~ITXDeviceCollection()

virtual ~ITXDeviceCollection ( )
inlineprotectedvirtual

成员函数说明

◆ getCount()

virtual uint32_t getCount ( )
pure virtual

设备数量

返回
设备数量

◆ getDeviceName()

virtual const char* getDeviceName ( uint32_t  index)
pure virtual

设备名字 (UTF-8)

参数
index设备索引,值为 [0,getCount)
返回
设备名字 (UTF-8)

◆ getDevicePID()

virtual const char* getDevicePID ( uint32_t  index)
pure virtual

设备唯一标识 (UTF-8)

参数
index设备索引,值为 [0,getCount)

◆ getDeviceProperties()

virtual const char* getDeviceProperties ( uint32_t  index)
pure virtual

设备信息(json格式)

注意
  • 示例:{"SupportedResolution":[{"width":640,"height":480},{"width":320,"height":240}]}
参数
index设备索引,值为 [0,getCount)
返回
返回 json 格式的设备信息

◆ release()

virtual void release ( )
pure virtual

释放设备列表,请不要使用 delete 释放资源 !!!

◆ liteav::ITXDeviceObserver

class liteav::ITXDeviceObserver

Public 成员函数

virtual ~ITXDeviceObserver ()
 
virtual void onDeviceChanged (const char *deviceId, TXMediaDeviceType type, TXMediaDeviceState state)
 

构造及析构函数说明

◆ ~ITXDeviceObserver()

virtual ~ITXDeviceObserver ( )
inlinevirtual

成员函数说明

◆ onDeviceChanged()

virtual void onDeviceChanged ( const char *  deviceId,
TXMediaDeviceType  type,
TXMediaDeviceState  state 
)
inlinevirtual

本地设备的通断状态发生变化(仅适用于桌面系统)

当本地设备(包括摄像头、麦克风以及扬声器)被插入或者拔出时,SDK 便会抛出此事件回调。

参数
deviceId设备 ID
type设备类型
state通断状态,0:设备已添加;1:设备已被移除;2:设备已启用。

◆ liteav::ITXDeviceManager

class liteav::ITXDeviceManager

移动端设备操作接口

virtual bool isFrontCamera ()=0
 
virtual int switchCamera (bool frontCamera)=0
 
virtual float getCameraZoomMaxRatio ()=0
 
virtual int setCameraZoomRatio (float zoomRatio)=0
 
virtual bool isAutoFocusEnabled ()=0
 
virtual int enableCameraAutoFocus (bool enabled)=0
 
virtual int setCameraFocusPosition (float x, float y)=0
 
virtual int enableCameraTorch (bool enabled)=0
 
virtual int setAudioRoute (TXAudioRoute route)=0
 
virtual int setSystemVolumeType (TXSystemVolumeType type)=0
 

桌面端设备操作接口

virtual ITXDeviceCollectiongetDevicesList (TXMediaDeviceType type)=0
 
virtual int setCurrentDevice (TXMediaDeviceType type, const char *deviceId)=0
 
virtual ITXDeviceInfogetCurrentDevice (TXMediaDeviceType type)=0
 
virtual int setCurrentDeviceVolume (TXMediaDeviceType type, uint32_t volume)=0
 
virtual uint32_t getCurrentDeviceVolume (TXMediaDeviceType type)=0
 
virtual int setCurrentDeviceMute (TXMediaDeviceType type, bool mute)=0
 
virtual bool getCurrentDeviceMute (TXMediaDeviceType type)=0
 
virtual int startCameraDeviceTest (void *view)=0
 
virtual int stopCameraDeviceTest ()=0
 
virtual int startMicDeviceTest (uint32_t interval)=0
 
virtual int stopMicDeviceTest ()=0
 
virtual int startSpeakerDeviceTest (const char *filePath)=0
 
virtual int stopSpeakerDeviceTest ()=0
 
virtual int startCameraDeviceTest (ITRTCVideoRenderCallback *callback)=0
 
virtual int setApplicationPlayVolume (int volume)=0
 
virtual int getApplicationPlayVolume ()=0
 
virtual int setApplicationMuteState (bool bMute)=0
 
virtual bool getApplicationMuteState ()=0
 
virtual void setCameraCapturerParam (const TXCameraCaptureParam &params)=0
 
virtual void setDeviceObserver (ITXDeviceObserver *observer)=0
 

构造及析构函数说明

◆ ITXDeviceManager()

ITXDeviceManager ( )
inlineprotected

◆ ~ITXDeviceManager()

virtual ~ITXDeviceManager ( )
inlineprotectedvirtual

成员函数说明

◆ enableCameraAutoFocus()

virtual int enableCameraAutoFocus ( bool  enabled)
pure virtual

开启自动对焦功能(仅适用于移动端)

开启后,SDK 会自动检测画面中的人脸位置,并将摄像头的焦点始终对焦在人脸位置上。

◆ enableCameraTorch()

virtual int enableCameraTorch ( bool  enabled)
pure virtual

开启/关闭闪光灯,也就是手电筒模式(仅适用于移动端)

◆ getApplicationMuteState()

virtual bool getApplicationMuteState ( )
pure virtual

获取 Windows 系统音量合成器中当前进程的静音状态(仅适用于 Windows 系统)

◆ getApplicationPlayVolume()

virtual int getApplicationPlayVolume ( )
pure virtual

获取 Windows 系统音量合成器中当前进程的音量(仅适用于 Windows 系统)

◆ getCameraZoomMaxRatio()

virtual float getCameraZoomMaxRatio ( )
pure virtual

获取摄像头的最大缩放倍数(仅适用于移动端)

◆ getCurrentDevice()

virtual ITXDeviceInfo* getCurrentDevice ( TXMediaDeviceType  type)
pure virtual

获取当前正在使用的设备(仅适用于桌面端)

◆ getCurrentDeviceMute()

virtual bool getCurrentDeviceMute ( TXMediaDeviceType  type)
pure virtual

获取当前设备的静音状态(仅适用于桌面端)

这里的音量指的是麦克风和扬声器,摄像头是不支持静音操作的。

◆ getCurrentDeviceVolume()

virtual uint32_t getCurrentDeviceVolume ( TXMediaDeviceType  type)
pure virtual

获取当前设备的音量(仅适用于桌面端)

这里的音量指的是麦克风的采集音量或者扬声器的播放音量,摄像头是不支持获取音量的。

◆ getDevicesList()

virtual ITXDeviceCollection* getDevicesList ( TXMediaDeviceType  type)
pure virtual

获取设备列表(仅适用于桌面端)

参数
type设备类型,指定需要获取哪种设备的列表。详见 TXMediaDeviceType 定义。
注意
  • 使用完毕后请调用 release 方法释放资源,这样可以让 SDK 维护 ITXDeviceCollection 对象的生命周期。
  • 不要使用 delete 释放返回的 Collection 对象,delete ITXDeviceCollection* 指针会导致异常崩溃。
  • type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker、TXMediaDeviceTypeCamera。
  • 此接口只支持 Mac 和 Windows 平台

◆ isAutoFocusEnabled()

virtual bool isAutoFocusEnabled ( )
pure virtual

查询是否支持自动识别人脸位置(仅适用于移动端)

◆ isFrontCamera()

virtual bool isFrontCamera ( )
pure virtual

判断当前是否为前置摄像头(仅适用于移动端)

◆ setApplicationMuteState()

virtual int setApplicationMuteState ( bool  bMute)
pure virtual

设置 Windows 系统音量合成器中当前进程的静音状态(仅适用于 Windows 系统)

◆ setApplicationPlayVolume()

virtual int setApplicationPlayVolume ( int  volume)
pure virtual

设置 Windows 系统音量合成器中当前进程的音量(仅适用于 Windows 系统)

◆ setAudioRoute()

virtual int setAudioRoute ( TXAudioRoute  route)
pure virtual

设置音频路由(仅适用于移动端)

手机有两个音频播放设备:一个是位于手机顶部的听筒,一个是位于手机底部的立体声扬声器。 设置音频路由为听筒时,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。 设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。

◆ setCameraCapturerParam()

virtual void setCameraCapturerParam ( const TXCameraCaptureParam params)
pure virtual

设置摄像头采集偏好

◆ setCameraFocusPosition()

virtual int setCameraFocusPosition ( float  x,
float  y 
)
pure virtual

设置摄像头的对焦位置(仅适用于移动端)

您可以通过该接口实现如下交互:

  1. 在本地摄像头的预览画面上,允许用户单击操作。
  2. 在用户的单击位置显示一个矩形方框,以示摄像头会在此处对焦。
  3. 随后将用户点击位置的坐标通过本接口传递给 SDK,之后 SDK 会操控摄像头按照用户期望的位置进行对焦。
    注意
    使用该接口的前提是先通过 enableCameraAutoFocus 关闭自动对焦功能。
    参数
    position对焦位置,请传入期望对焦点的坐标值
    返回
    0:操作成功;负数:操作失败。

◆ setCameraZoomRatio()

virtual int setCameraZoomRatio ( float  zoomRatio)
pure virtual

设置摄像头的缩放倍数(仅适用于移动端)

参数
zoomRatio取值范围1 - 5,取值为1表示最远视角(正常镜头),取值为5表示最近视角(放大镜头)。

◆ setCurrentDevice()

virtual int setCurrentDevice ( TXMediaDeviceType  type,
const char *  deviceId 
)
pure virtual

设置当前要使用的设备(仅适用于桌面端)

参数
type设备类型,详见 TXMediaDeviceType 定义。
deviceId设备ID,您可以通过接口 getDevicesList 获得设备 ID。
返回
0:操作成功;负数:操作失败。

◆ setCurrentDeviceMute()

virtual int setCurrentDeviceMute ( TXMediaDeviceType  type,
bool  mute 
)
pure virtual

设置当前设备的静音状态(仅适用于桌面端)

这里的音量指的是麦克风和扬声器,摄像头是不支持静音操作的。

◆ setCurrentDeviceVolume()

virtual int setCurrentDeviceVolume ( TXMediaDeviceType  type,
uint32_t  volume 
)
pure virtual

设置当前设备的音量(仅适用于桌面端)

这里的音量指的是麦克风的采集音量或者扬声器的播放音量,摄像头是不支持设置音量的。

参数
volume音量大小,取值范围为0 - 100,默认值:100。
注意
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。

◆ setDeviceObserver()

virtual void setDeviceObserver ( ITXDeviceObserver observer)
pure virtual

设置 onDeviceChanged 事件回调

◆ setSystemVolumeType()

virtual int setSystemVolumeType ( TXSystemVolumeType  type)
pure virtual

设置系统音量类型(仅适用于移动端)

◆ startCameraDeviceTest() [1/2]

virtual int startCameraDeviceTest ( ITRTCVideoRenderCallback callback)
pure virtual

开始摄像头测试(仅适用于 Windows 系统)

该接口支持自定义渲染,即您可以通过接 ITRTCVideoRenderCallback 回调接口接管摄像头的渲染画面。

◆ startCameraDeviceTest() [2/2]

virtual int startCameraDeviceTest ( void *  view)
pure virtual

开始摄像头测试(仅适用于桌面端)

注意
在测试过程中可以使用 setCurrentDevice 接口切换摄像头。

◆ startMicDeviceTest()

virtual int startMicDeviceTest ( uint32_t  interval)
pure virtual

开始麦克风测试(仅适用于桌面端)

该接口可以测试麦克风是否能正常工作,测试到的麦克风采集音量的大小,会以回调的形式通知给您,其中 volume 的取值范围为0 - 100。

参数
interval麦克风音量的回调间隔。

◆ startSpeakerDeviceTest()

virtual int startSpeakerDeviceTest ( const char *  filePath)
pure virtual

开始扬声器测试(仅适用于桌面端)

该接口通过播放指定的音频文件,用于测试播放设备是否能正常工作。如果用户在测试时能听到声音,说明播放设备能正常工作。

参数
filePath声音文件的路径

◆ stopCameraDeviceTest()

virtual int stopCameraDeviceTest ( )
pure virtual

结束摄像头测试(仅适用于桌面端)

◆ stopMicDeviceTest()

virtual int stopMicDeviceTest ( )
pure virtual

结束麦克风测试(仅适用于桌面端)

◆ stopSpeakerDeviceTest()

virtual int stopSpeakerDeviceTest ( )
pure virtual

结束扬声器测试(仅适用于桌面端)

◆ switchCamera()

virtual int switchCamera ( bool  frontCamera)
pure virtual

切换前置或后置摄像头(仅适用于移动端)

宏定义说明

◆ __ITXDEVICEMANAGER_H__

#define __ITXDEVICEMANAGER_H__