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

Public 成员函数

 TXLivePusher ()
 
 ~TXLivePusher ()
 
void setListener (ITXLivePusherListener^ listener, IntPtr pUserData)
 
array< String^> ^ enumCameras ()
 
array< String^> ^ micDevices ()
 
void selectMicDevice (UInt32 index)
 
UInt32 micVolume ()
 
void setMicVolume (UInt32 volume)
 
UInt32 micVolumeIndication ()
 
void openMicTest ()
 
void closeMicTest ()
 
void openSystemVoiceInput (String^ szPlayerPath)
 
void closeSystemVoiceInput ()
 
void setSystemVoiceInputVolume (int value)
 
void enableAudioPreprocess (TXEAudioPreprocessType preprocessType, bool enable)
 
void setAudioChannels (TXEAudioChannels channels)
 
void startAudioCapture (TXEAudioCaptureSrcType srcType)
 
void stopAudioCapture ()
 
bool startPreview (TXEVideoCaptureSrcType srcType, IntPtr rendHwnd)
 
void updatePreview (IntPtr rendHwnd)
 
void stopPreview ()
 
Dictionary< IntPtr, String^> ^ enumCaptureWindow ()
 
void setScreenCaptureParam (IntPtr captureHwnd, Int32 x, Int32 y, Int32 width, Int32 height)
 
int captureVideoSnapShot (String^ filePath)
 
bool startPush (String^ url)
 
void stopPush ()
 
void switchCamera (int cameraIndex)
 
void setMute (bool mute)
 
void setRenderMode (TXERenderMode mode)
 
void setRotation (TXEVideoRotation rotation)
 
void setVideoQualityParamPreset (TXEVideoQualityParamPreset paramType)
 
void setVideoResolution (TXEVideoResolution resolution)
 
void setBeautyStyle (TXEBeautyStyle beautyStyle, int beautyLevel, int whitenessLevel)
 
void setRenderYMirror (bool mirror)
 
void setOutputYMirror (bool mirror)
 
void setVideoBitRate (UInt32 bitrate)
 
void setAutoAdjustStrategy (TXEAutoAdjustStrategy strategy)
 
void setVideoBitRateMin (int videoBitrateMin)
 
void setVideoBitRateMax (int videoBitrateMax)
 
void setVideoFPS (UInt32 fps)
 
void setPauseVideo (bool pause)
 
void setNearestIP (bool enable)
 
void showDebugView (int showType)
 

构造及析构函数说明

◆ TXLivePusher()

◆ ~TXLivePusher()

析构函数,C::代码中要求显示调用Dispose函数,来触发托管C++类析构函数

成员函数说明

◆ captureVideoSnapShot()

int captureVideoSnapShot ( String^  filePath)

推流的图像截图到本地

参数
filePath存储路径
返回
0成功,非0失败:-1:失败,-2路径非法,-3文件存在,-4未推流

◆ closeMicTest()

void closeMicTest ( )

关闭麦克风测试

◆ closeSystemVoiceInput()

void closeSystemVoiceInput ( )

关闭系统声音采集(暂时不支持64位)

◆ enableAudioPreprocess()

void enableAudioPreprocess ( TXEAudioPreprocessType  preprocessType,
bool  enable 
)

设置系统声音前处理模式 默认开启AEC、AGC、NS,如需要关闭回声消除enableAudioPreprocess(TXE_AUDIO_PRETREATMENT_AEC, false);

参数
preprocessType参考 TXLiveTypeDef.h 中定义的 TXEAudioPreprocessType

◆ enumCameras()

array<String^> ^ enumCameras ( )

枚举当前可用的摄像头,如果一台Windows同时安装了多个摄像头,那么此函数获取可用的摄像头数量和名称

返回
当前可用的摄像头列表

◆ enumCaptureWindow()

Dictionary<IntPtr, String^> ^ enumCaptureWindow ( )

枚举当前的可以捕抓的窗口,如果桌面同时存在多个窗口,那么此函数获取可采集的窗口句柄

返回
当前可捕抓的窗口列表,每一个都分别表示窗口句柄和窗口名称的键值对

◆ micDevices()

array<String^> ^ micDevices ( )

枚举当前可用的麦克风,如果一台Windows同时安装了多个麦克风,那么此函数获取可用的麦克风数量和名称

返回
当前可用的麦克风列表,查询得到的字符编码格式是UTF-8

◆ micVolume()

UInt32 micVolume ( )

查询已选择麦克风的音量

返回
音量值,范围是[0, 65535]

◆ micVolumeIndication()

UInt32 micVolumeIndication ( )

查询已选择麦克风的能量值,指示音量的大小

返回
能量值,范围是[0, 65535]

◆ openMicTest()

void openMicTest ( )

打开麦克风测试

◆ openSystemVoiceInput()

void openSystemVoiceInput ( String^  szPlayerPath)

打开系统声音采集(暂时不支持64位)

参数
szPlayerPath播放器地址;如果用户此参数填空或不填,表示采集系统中的所有声音; 如果填入exe程序(如:酷狗、QQ音乐)所在路径, 将会启动此程序,并只采集此程序的声音;

◆ selectMicDevice()

void selectMicDevice ( UInt32  index)

选择指定的麦克风作为录音设备,不调用该接口时,默认选择索引为0的麦克风

参数
index麦克风设备的索引,要求index值小于 micDevices 接口的返回值的数组大小

◆ setAudioChannels()

void setAudioChannels ( TXEAudioChannels  channels)

设置音频声道数

参数
channels参考 TXLiveTypeDef.h 中定义的 TXEAudioChannels 枚举值,SDK 内部默认选择 TXE_AUDIO_CHANNELS_1 单声道

◆ setAutoAdjustStrategy()

void setAutoAdjustStrategy ( TXEAutoAdjustStrategy  strategy)

设置流控策略,即是否允许 SDK 根据当前网络情况调整视频码率,以避免网络上传速度不足导致的画面卡顿

参数
strategy参考 TXLiveTypeDef.h 中定义的 TXEAutoAdjustStrategy 枚举值

◆ setBeautyStyle()

void setBeautyStyle ( TXEBeautyStyle  beautyStyle,
int  beautyLevel,
int  whitenessLevel 
)

设置美颜和美白效果

参数
beautyStyle参考 TXLiveTypeDef.h 中定义的 TXEBeautyStyle 枚举值
beautyLevel美颜级别取值范围 1 ~ 9; 0 表示关闭,1 ~ 9值越大,效果越明显
whitenessLevel美白级别取值范围 1 ~ 9; 0 表示关闭,1 ~ 9值越大,效果越明显

◆ setListener()

void setListener ( ITXLivePusherListener listener,
IntPtr  pUserData 
)

设置回调 TXLivePusher 的回调代理,监听推流事件、以及获取音视频数据

参数
listenerITXLivePusherListener 类型的接口类
pUserData一般情况下传 NULL 就可以了,透传用户数据到 ITXLivePusherCallback 的回调函数

◆ setMicVolume()

void setMicVolume ( UInt32  volume)

设置已选择麦克风的音量

参数
volume设置的音量大小,范围是[0, 65535]

◆ setMute()

void setMute ( bool  mute)

静音接口

参数
mute是否静音

◆ setNearestIP()

void setNearestIP ( bool  enable)

设置是否就近选路

参数
enabletrue表示启用,false表示禁用,SDK 默认为true

◆ setOutputYMirror()

void setOutputYMirror ( bool  mirror)

设置推流画面的镜像效果

参数
mirrortrue表示画面左右反转,false表示保持原样

◆ setPauseVideo()

void setPauseVideo ( bool  pause)

设置视频暂停

◆ setRenderMode()

void setRenderMode ( TXERenderMode  mode)

设置图像的渲染(填充)模式

参数
mode参考 TXLiveTypeDef.h 中定义的 TXERenderMode 枚举值

◆ setRenderYMirror()

void setRenderYMirror ( bool  mirror)

设置预览渲染的镜像效果

参数
mirrortrue表示画面左右反转,false表示保持原样

◆ setRotation()

void setRotation ( TXEVideoRotation  rotation)

设置图像的顺时针旋转角度

参数
rotation参考 TXLiveTypeDef.h 中定义的 TXEVideoRotation 枚举值

◆ setScreenCaptureParam()

void setScreenCaptureParam ( IntPtr  captureHwnd,
Int32  x,
Int32  y,
Int32  width,
Int32  height 
)

屏幕区域捕抓参数设置接口,startPreview(srcType = TXE_VIDEO_SRC_SDK_SCREEN..)前调用,默认捕抓整个主屏幕

参数
captureHwnd指定捕抓窗口,如果captureHwnd不为NULL时,捕抓整个captureHwnd窗口大小,此时captureRect设置会失效, 如果captureHwnd为NULL时,则captureRect有效,捕抓主屏幕指定的区域:captureRect
x被捕抓窗口区域的坐标x,以左上角为准
y被捕抓窗口区域的坐标y,以左上角为准
width被捕抓窗口区域的宽度
height被捕抓窗口区域的高度

◆ setSystemVoiceInputVolume()

void setSystemVoiceInputVolume ( int  value)

设置系统声音采集的音量(暂时不支持64位)

参数
value设置目标音量,取值范围[0,100]

◆ setVideoBitRate()

void setVideoBitRate ( UInt32  bitrate)

设置视频码率,注意,不是分辨率越高画面越清晰,是码率越高画面越清晰

参数
bitrate视频码率,单位 kbps, 比如 640x360 分辨率需要配合 800kbps 的视频码率

◆ setVideoBitRateMax()

void setVideoBitRateMax ( int  videoBitrateMax)

配合 setAutoAdjustStrategy 使用,当 AutoAdjust 策略指定为 TXE_AUTO_ADJUST_NONE 时,该函数调用均视为无效

参数
videoBitrateMax允许 SDK 输出的最小视频码率, 比如 640x360 分辨率下这个值适合设置为 1000kbps

◆ setVideoBitRateMin()

void setVideoBitRateMin ( int  videoBitrateMin)

配合 setAutoAdjustStrategy 使用,当 AutoAdjust 策略指定为 TXE_AUTO_ADJUST_NONE 时,该函数调用均视为无效

参数
videoBitrateMin允许 SDK 输出的最小视频码率,比如 640x360 分辨率下这个值适合设置为 300kbps

◆ setVideoFPS()

void setVideoFPS ( UInt32  fps)

设置视频帧率

参数
fps视频帧率,默认值为15,重启后生效

◆ setVideoQualityParamPreset()

void setVideoQualityParamPreset ( TXEVideoQualityParamPreset  paramType)

推流的画面质量预设选项

参数
paramType预设类型,参考 TXLiveTypeDef.h 中定义的 TXEVideoQualityParamPreset 枚举值

◆ setVideoResolution()

void setVideoResolution ( TXEVideoResolution  resolution)

设置视频分辨率

参数
resolution视频分辨率,参考 TXLiveTypeDef.h 中定义的 TXEVideoResolution 枚举值

◆ showDebugView()

void showDebugView ( int  showType)

显示仪表盘(状态统计和事件消息浮层view),方便调试

参数
showType0: 不显示 1: 显示精简版 2: 显示全量版

◆ startAudioCapture()

void startAudioCapture ( TXEAudioCaptureSrcType  srcType)

启动音频采集,SDK内部采用48K采样率,单声道,16位宽,实现很低延迟的实时音频通话的效果

参数
srcType音频数据源类型

◆ startPreview()

bool startPreview ( TXEVideoCaptureSrcType  srcType,
IntPtr  rendHwnd 
)

启动视频源预览

参数
srcType参考 TXLiveTypeDef.h 中定义的 TXEVideoCaptureSrcType 枚举值
rendHwnd承载预览画面的 HWND,rendHwnd = null时无需预览视频
dataFormatsrcType指定为TXE_VIDEO_SRC_USER_DATA时生效,指定传入视频数据的格式
返回
成功 or 失败,摄像头被占用可能会导致 camera 打开失败

◆ startPush()

bool startPush ( String^  url)

启动推流 (在 startPush 之前需要先 startPreview 启动摄像头预览,否则推送出去的数据流里只有音频)

参数
url合法的推流地址,腾讯云的推流 URL 都要求带有 txSecret 和 txTime 防盗链签名,如果您发现推流推不上去,请检查这两个签名是否合法
返回
成功 or 失败,内存分配、资源申请失败等原因可能会导致返回失败

◆ stopAudioCapture()

void stopAudioCapture ( )

关闭音频采集

◆ stopPreview()

void stopPreview ( )

关闭摄像头预览,stopPush 之前调用此函数并不会停止推流,会导致 SDK 只推送音频数据

◆ stopPush()

void stopPush ( )

停止推流,注意推流 url 有排他性,也就是一个推流 Url 同时只能有一个推流端向上推流 若通过 startPreview 接口开启了预览,在调用这个接口前,请先调用 stopPreview 接口

◆ switchCamera()

void switchCamera ( int  cameraIndex)

切换摄像头,支持在推流中动态切换

参数
cameraIndex摄像头需要,取值返回: 0 ~ (摄像头个数 - 1)

指定要开启哪个摄像头的预览,如果只有一个摄像头,则设置为 0 ,否则,需要先用 enumCameras 获取 cameraIndex cameraIndex == 0 表示打开当前可用的第一个摄像头 cameraIndex == 1 表示打开当前可用的第二个摄像头 ... ... cameraIndex == -1 表示打开当前可用的全部摄像头,但是预览的是第一个,通过 switchCamera 来切换摄像头 Windows 下开启一个 USB 摄像头需要很长的电路和驱动启动时间(一般需要 1 - 3 秒),所以,如果您要实现较好的切换效果 推荐的做法是:switchCamera 时指定 cameraIndex 为 - 1 来打开全部摄像头 ,后续用 switchCamera 实现瞬间切换摄像头

◆ updatePreview()

void updatePreview ( IntPtr  rendHwnd)

重设摄像头预览区域,当您指定的 HWND 的窗口尺寸发生变化时,可以通过这个函数重新调整视频渲染区域

参数
rendHwnd承载预览画面的 HWND