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

详细描述

腾讯云视频通话功能的设备管理接口类


结构体说明

◆ trtc::ITXDeviceCollection

class trtc::ITXDeviceCollection

Public 成员函数

virtual uint32_t getCount ()=0
 
virtual const char * getDeviceName (uint32_t index)=0
 
virtual const char * getDevicePID (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

◆ getDevicePID()

virtual const char* getDevicePID ( uint32_t  index)
pure virtual
返回
设备PID,字符编码格式是UTF-8

◆ release()

virtual void release ( )
pure virtual

遍历完设备后,调用release释放资源。

◆ trtc::ITXDeviceInfo

class trtc::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
返回
设备名称,字符编码格式是UTF-8

◆ getDevicePID()

virtual const char* getDevicePID ( )
pure virtual
返回
设备PID,字符编码格式是UTF-8

◆ release()

virtual void release ( )
pure virtual

获取完设备信息后,调用release释放资源。

◆ trtc::ITXDeviceManager

class trtc::ITXDeviceManager

Public 成员函数

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 startCameraDeviceTest (ITRTCVideoRenderCallback *callback)=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 setApplicationPlayVolume (int volume)=0
 
virtual int getApplicationPlayVolume ()=0
 
virtual int setApplicationMuteState (bool bMute)=0
 
virtual bool getApplicationMuteState ()=0
 
virtual int switchCamera (bool frontCamera)=0
 
virtual bool isFrontCamera ()=0
 
virtual float getCameraZoomMaxRatio ()=0
 
virtual int setCameraZoomRatio (float zoomRatio)=0
 
virtual int enableCameraAutoFocus (bool enabled)=0
 
virtual bool isAutoFocusEnabled ()=0
 
virtual int setCameraFocusPosition (float x, float y)=0
 
virtual int enableCameraTorch (bool enabled)=0
 
virtual int setSystemVolumeType (TXSystemVolumeType type)=0
 
virtual int setAudioRoute (TXAudioRoute route)=0
 

构造及析构函数说明

◆ ITXDeviceManager()

ITXDeviceManager ( )
inlineprotected

◆ ~ITXDeviceManager()

virtual ~ITXDeviceManager ( )
inlineprotectedvirtual

成员函数说明

◆ getDevicesList()

virtual ITXDeviceCollection* getDevicesList ( TXMediaDeviceType  type)
pure virtual

获取设备列表

参数
type设备类型,指定需要获取哪种设备的列表。详见TXMediaDeviceType定义。
注意
- 如果 delete ITXDeviceCollection* 指针会编译错误,SDK 维护 ITXDeviceCollection 对象的生命周期。
  • type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker、TXMediaDeviceTypeCamera
  • 此接口只支持Mac和Windows平台

◆ setCurrentDevice()

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

指定当前设备

参数
type设备类型,根据设备类型指定当前设备。详见TXMediaDeviceType定义。
deviceId从 getDevicesList 中得到的设备 ID
返回
0:操作成功 负数:失败
注意
- type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker、TXMediaDeviceTypeCamera
  • 此接口只支持Mac和Windows平台

◆ getCurrentDevice()

virtual ITXDeviceInfo* getCurrentDevice ( TXMediaDeviceType  type)
pure virtual

获取当前使用的设备

参数
type设备类型,根据设备类型获取当前设备信息。详见TXMediaDeviceType定义。
返回
ITRTCDeviceInfo 设备信息,能获取设备 ID 和设备名称
注意
此接口只支持Mac和Windows平台

◆ setCurrentDeviceVolume()

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

设置当前设备的音量

参数
type设备类型,根据设备类型获取当前设备音量。详见TXMediaDeviceType定义。
volume音量大小
返回
0:操作成功 负数:失败
注意
- type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker
  • 此接口只支持Mac和Windows平台

◆ getCurrentDeviceVolume()

virtual uint32_t getCurrentDeviceVolume ( TXMediaDeviceType  type)
pure virtual

获取当前设备的音量

参数
type设备类型,根据设备类型获取当前设备音量。详见TXMediaDeviceType定义。
注意
- type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker
  • 此接口只支持Mac和Windows平台

◆ setCurrentDeviceMute()

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

设置当前设备是否静音

参数
type设备类型,根据设备类型设置当前设备状态。详见TXMediaDeviceType定义。
mute是否静音/禁画
返回
0:操作成功 负数:失败
注意
- type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker
  • 此接口只支持Mac和Windows平台

◆ getCurrentDeviceMute()

virtual bool getCurrentDeviceMute ( TXMediaDeviceType  type)
pure virtual

查询当前设备是否静音

参数
type设备类型,根据设备类型获取当前设备状态。详见TXMediaDeviceType定义。
返回
true : 当前设备已静音;false : 当前设备未静音
注意
type 只支持 TXMediaDeviceTypeMic、TXMediaDeviceTypeSpeaker

◆ startCameraDeviceTest() [1/2]

virtual int startCameraDeviceTest ( void *  view)
pure virtual

开始摄像头测试

参数
view预览控件所在的父控件
返回
0:操作成功 负数:失败
注意
- 在测试过程中可以使用 setCurrentCameraDevice 接口切换摄像头。
  • 此接口只支持Mac和Windows平台

◆ startCameraDeviceTest() [2/2]

virtual int startCameraDeviceTest ( ITRTCVideoRenderCallback callback)
pure virtual

开始进行摄像头测试 会触发 onFirstVideoFrame 回调接口

参数
callback摄像头预览自定义渲染画面回调
返回
0:操作成功 负数:失败
注意
- 在测试过程中可以使用 setCurrentCameraDevice 接口切换摄像头。
  • 此接口只支持Windows平台

◆ stopCameraDeviceTest()

virtual int stopCameraDeviceTest ( )
pure virtual

结束摄像头测试

返回
0:操作成功 负数:失败
注意
此接口只支持Mac和Windows平台

◆ startMicDeviceTest()

virtual int startMicDeviceTest ( uint32_t  interval)
pure virtual

开始麦克风测试

参数
interval音量回调间隔
返回
0:操作成功 负数:失败
注意
此接口只支持Mac和Windows平台

◆ stopMicDeviceTest()

virtual int stopMicDeviceTest ( )
pure virtual

结束麦克风测试

返回
0:操作成功 负数:失败
注意
此接口只支持Mac和Windows平台

◆ startSpeakerDeviceTest()

virtual int startSpeakerDeviceTest ( const char *  filePath)
pure virtual

开始扬声器测试

该方法播放指定的音频文件测试播放设备是否能正常工作。如果能听到声音,说明播放设备能正常工作。

参数
filePath声音文件的路径
返回
0:操作成功 负数:失败
注意
此接口只支持Mac和Windows平台

◆ stopSpeakerDeviceTest()

virtual int stopSpeakerDeviceTest ( )
pure virtual

停止扬声器测试

返回
0:操作成功 负数:失败
注意
此接口只支持Mac和Windows平台

◆ setApplicationPlayVolume()

virtual int setApplicationPlayVolume ( int  volume)
pure virtual

设置 Windows 系统音量合成器中当前进程的音量

参数
volume音量值,取值范围[0~100]
返回
0:成功

◆ getApplicationPlayVolume()

virtual int getApplicationPlayVolume ( )
pure virtual

获取 Windows 系统音量合成器中当前进程的音量

返回
返回音量值,取值范围[0~100]

◆ setApplicationMuteState()

virtual int setApplicationMuteState ( bool  bMute)
pure virtual

设置 Windows 系统音量合成器中当前进程的静音状态

参数
bMute是否设置为静音状态
返回
0 设置成功

◆ getApplicationMuteState()

virtual bool getApplicationMuteState ( )
pure virtual

获取 Windows 系统音量合成器中当前进程的静音状态

返回
返回静音状态

◆ switchCamera()

virtual int switchCamera ( bool  frontCamera)
pure virtual

切换摄像头

参数
frontCameraYES:切换到前置摄像头 NO:切换到后置摄像头
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

◆ isFrontCamera()

virtual bool isFrontCamera ( )
pure virtual

当前是否为前置摄像头

注意
此接口只支持和Android和iOS平台

◆ getCameraZoomMaxRatio()

virtual float getCameraZoomMaxRatio ( )
pure virtual

获取摄像头最大缩放倍数

注意
此接口只支持和Android和iOS平台

◆ setCameraZoomRatio()

virtual int setCameraZoomRatio ( float  zoomRatio)
pure virtual

设置摄像头缩放倍数

参数
zoomRatio缩放倍数
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

◆ enableCameraAutoFocus()

virtual int enableCameraAutoFocus ( bool  enabled)
pure virtual

设置是否自动识别人脸位置

参数
enabledYES:开启;NO:关闭,默认值:YES
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

◆ isAutoFocusEnabled()

virtual bool isAutoFocusEnabled ( )
pure virtual

查询是否支持自动识别人脸位置

注意
此接口只支持和Android和iOS平台

◆ setCameraFocusPosition()

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

设置摄像头焦点

参数
x焦点横坐标
y焦点纵坐标
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

◆ enableCameraTorch()

virtual int enableCameraTorch ( bool  enabled)
pure virtual

设置是否开启闪光灯

参数
enabledYES:开启;NO:关闭,默认值:NO
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

◆ setSystemVolumeType()

virtual int setSystemVolumeType ( TXSystemVolumeType  type)
pure virtual

设置通话时使用的系统音量类型

注意
  1. 需要在调用 startLocalAudio() 之前调用该接口。
  2. 如无特殊需求,不推荐您自行设置,您只需通过 enterRoom 设置好适合您的场景,SDK 内部会自动选择相匹配的音量类型。
参数
type系统音量类型,如无特殊需求,不推荐您自行设置。
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

◆ setAudioRoute()

virtual int setAudioRoute ( TXAudioRoute  route)
pure virtual

设置设置音频路由

微信和手机 QQ 视频通话功能的免提模式就是基于音频路由实现的。 一般手机都有两个扬声器,一个是位于顶部的听筒扬声器,声音偏小;一个是位于底部的立体声扬声器,声音偏大。 设置音频路由的作用就是决定声音使用哪个扬声器播放。

参数
route音频路由,即声音由哪里输出(扬声器、听筒),默认值:TXAudioRouteSpeakerphone
返回
0:操作成功 负数:失败
注意
此接口只支持和Android和iOS平台

枚举类型说明

◆ TXSystemVolumeType

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

智能手机一般具备两种系统音量类型,即通话音量类型和媒体音量类型。

  • 通话音量:手机专门为通话场景设计的音量类型,使用手机自带的回声抵消功能,音质相比媒体音量类型较差, 无法通过音量按键将音量调成零,但是支持蓝牙耳机上的麦克风。
  • 媒体音量:手机专门为音乐场景设计的音量类型,音质相比于通话音量类型要好,通过通过音量按键可以将音量调成零。 使用媒体音量类型时,如果要开启回声抵消(AEC)功能,SDK 会开启内置的声学处理算法对声音进行二次处理。 在媒体音量模式下,蓝牙耳机无法使用自带的麦克风采集声音,只能使用手机上的麦克风进行声音采集。

SDK 目前提供了三种系统音量类型的控制模式,分别为:

  • Auto:“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。 如果您在 enterRoom 时选择的场景为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom,SDK 会自动选择该模式。
  • VOIP:全程使用通话音量,适合多人会议场景。 如果您在 enterRoom 时选择的场景为 TRTCAppSceneVideoCall 或 TRTCAppSceneAudioCall,SDK 会自动选择该模式。
  • Media:通话全程使用媒体音量,不常用,适合个别有特殊需求(如主播外接声卡)的应用场景。
枚举值
TXSystemVolumeTypeAuto 

“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。
如果您在 enterRoom 时选择的场景为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom,SDK 会自动选择该模式。

TXSystemVolumeTypeMedia 

通话全程使用媒体音量,不常用,适合个别有特殊需求(如主播外接声卡)的应用场景。

TXSystemVolumeTypeVOIP 

全程使用通话音量,适合多人会议场景。
如果您在 enterRoom 时选择的场景为 TRTCAppSceneVideoCall 或 TRTCAppSceneAudioCall 会自动选择该模式。

◆ TXAudioRoute

声音播放路由(仅适用于移动端设备)

一般手机都有两个扬声器,设置音频路由的作用就是要决定声音从哪个扬声器播放出来:

  • Speakerphone:扬声器,位于手机底部,声音偏大,适合外放音乐。
  • Earpiece:听筒,位于手机顶部,声音偏小,适合通话。
枚举值
TXAudioRouteSpeakerphone 

扬声器

TXAudioRouteEarpiece 

听筒

◆ TXMediaDeviceType

设备类型

枚举值
TXMediaDeviceTypeUnknown 

未知类型

TXMediaDeviceTypeMic 

麦克风

TXMediaDeviceTypeSpeaker 

扬声器或听筒

TXMediaDeviceTypeCamera 

摄像头