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

详细描述

腾讯云直播推流器接口类


结构体说明

◆ com::tencent::rtmp::TXLivePusher::VideoCustomProcessListener

interface com::tencent::rtmp::TXLivePusher::VideoCustomProcessListener

Public 成员函数

int onTextureCustomProcess (int textureId, int width, int height)
 
void onDetectFacePoints (float[] points)
 
void onTextureDestoryed ()
 

成员函数说明

◆ onDetectFacePoints()

void onDetectFacePoints ( float[]  points)

增值版回调人脸坐标

参数
points归一化人脸坐标,每两个值表示某点 P 的 X,Y 值。值域[0.f,1.f]

◆ onTextureCustomProcess()

int onTextureCustomProcess ( int  textureId,
int  width,
int  height 
)

在 OpenGL 线程中回调,在这里可以进行采集图像的二次处理

参数
textureId纹理 ID
width纹理的宽度
height纹理的高度
返回
返回给 SDK 的纹理 ID,如果不做任何处理,返回传入的纹理 ID 即可

说明:SDK 回调出来的纹理类型是 GLES20.GL_TEXTURE_2D,接口返回给 SDK 的纹理类型也必须是 GLES20.GL_TEXTURE_2D

◆ onTextureDestoryed()

void onTextureDestoryed ( )

在 OpenGL 线程中回调,可以在这里释放创建的 OpenGL 资源

◆ com::tencent::rtmp::TXLivePusher::AudioCustomProcessListener

interface com::tencent::rtmp::TXLivePusher::AudioCustomProcessListener

Public 成员函数

void onRecordRawPcmData (byte[] data, long ts, int sampleRate, int channels, int bits, boolean withBgm)
 
void onRecordPcmData (byte[] data, long ts, int sampleRate, int channels, int bits)
 

成员函数说明

◆ onRecordPcmData()

void onRecordPcmData ( byte[]  data,
long  ts,
int  sampleRate,
int  channels,
int  bits 
)

回调 SDK 录制音频 PCM 数据

参数
datapcm 数据
tspcm 对应时间戳
sampleRate音频采样率
channels音频通道
bits音频 bits

◆ onRecordRawPcmData()

void onRecordRawPcmData ( byte[]  data,
long  ts,
int  sampleRate,
int  channels,
int  bits,
boolean  withBgm 
)

回调未经过任何处理的 SDK 录制音频 PCM 数据

参数
datapcm 数据
tspcm 对应时间戳
sampleRate音频采样率
channels音频通道
bits音频 bits
withBgm回调的数据是否包含 BGM,当不开启回声消除时,回调的 raw pcm 会包含 bgm

◆ com::tencent::rtmp::TXLivePusher::ITXSnapshotListener

interface com::tencent::rtmp::TXLivePusher::ITXSnapshotListener

Public 成员函数

void onSnapshot (Bitmap bmp)
 

成员函数说明

◆ onSnapshot()

void onSnapshot ( Bitmap  bmp)

◆ com::tencent::rtmp::TXLivePusher::ITXAudioVolumeEvaluationListener

interface com::tencent::rtmp::TXLivePusher::ITXAudioVolumeEvaluationListener

Public 成员函数

void onAudioVolumeEvaluationNotify (int volume)
 

成员函数说明

◆ onAudioVolumeEvaluationNotify()

void onAudioVolumeEvaluationNotify ( int  volume)

麦克风采集音量大小回调类

参数
volume音量大小, 取值范围 [0, 100]

◆ com::tencent::rtmp::TXLivePusher::OnBGMNotify

interface com::tencent::rtmp::TXLivePusher::OnBGMNotify

Public 成员函数

void onBGMStart ()
 
void onBGMProgress (long progress, long duration)
 
void onBGMComplete (int err)
 

成员函数说明

◆ onBGMComplete()

void onBGMComplete ( int  err)

音乐播放结束的回调通知

参数
err0:正常结束 -1:出错结束

◆ onBGMProgress()

void onBGMProgress ( long  progress,
long  duration 
)

音乐播放进度的回调通知

参数
progress当前 BGM 已播放时间(ms)
duration当前 BGM 总时间(ms)

◆ onBGMStart()

void onBGMStart ( )

音乐播放开始的回调通知

◆ com::tencent::rtmp::TXLivePusher

class com::tencent::rtmp::TXLivePusher

静态 Public 属性

static final int YUV_420SP = 1
 
static final int YUV_420YpCbCr = 2
 
static final int YUV_420P = 3
 
static final int RGB_BGRA = 4
 
static final int RGB_RGBA = 5
 

SDK 基础函数

 TXLivePusher (Context context)
 
void setConfig (TXLivePushConfig config)
 
TXLivePushConfig getConfig ()
 
void setPushListener (ITXLivePushListener listener)
 

推流基础接口

void startCameraPreview (TXCloudVideoView view)
 
void stopCameraPreview (boolean isNeedClearLastImg)
 
int startPusher (String rtmpURL)
 
void stopPusher ()
 
void startScreenCapture ()
 
void stopScreenCapture ()
 
void pausePusher ()
 
void resumePusher ()
 
boolean isPushing ()
 

视频相关接口

void setVideoQuality (int quality, boolean adjustBitrate, boolean adjustResolution)
 
void switchCamera ()
 
boolean setMirror (boolean enable)
 
void setRenderRotation (int rotation)
 
boolean turnOnFlashLight (boolean enable)
 
int getMaxZoom ()
 
boolean setZoom (int value)
 
void setExposureCompensation (float value)
 

美颜相关接口

TXBeautyManager getBeautyManager ()
 
boolean setBeautyFilter (int style, int beautyLevel, int whiteningLevel, int ruddyLevel)
 
void setFilter (Bitmap bmp)
 
void setSpecialRatio (float ratio)
 

企业版美颜和动效挂件

void setEyeScaleLevel (int eyeScaleLevel)
 
void setFaceSlimLevel (int faceScaleLevel)
 
void setFaceVLevel (int faceVLevel)
 
void setChinLevel (int chinLevel)
 
void setFaceShortLevel (int faceShortlevel)
 
void setNoseSlimLevel (int noseSlimLevel)
 
boolean setGreenScreenFile (String file)
 
void setMotionTmpl (String motionPath)
 
void setMotionMute (boolean motionMute)
 

音频相关接口

void setMute (boolean mute)
 
TXAudioEffectManager getAudioEffectManager ()
 
void setAudioVolumeEvaluationListener (ITXAudioVolumeEvaluationListener listener)
 
void enableAudioVolumeEvaluation (int intervalMs)
 

本地录制接口

void setVideoRecordListener (TXRecordCommon.ITXVideoRecordListener listener)
 
int startRecord (final String videoFilePath)
 
void stopRecord ()
 
void snapshot (final ITXSnapshotListener listener)
 

自定义采集和处理

int sendCustomVideoTexture (int textureID, int w, int h)
 
int sendCustomVideoData (byte[] buffer, int bufferType, int w, int h)
 
void sendCustomPCMData (byte[] pcmBuffer)
 
void setVideoProcessListener (VideoCustomProcessListener listener)
 
void setAudioProcessListener (AudioCustomProcessListener listener)
 
void setSurface (Surface surface)
 
void setSurfaceSize (int width, int height)
 
void setFocusPosition (float x, float y)
 

更多实用接口

boolean sendMessageEx (byte[] msg)
 
void sendMessage (byte[] msg)
 
void onLogRecord (String str)
 
void callExperimentalAPI (final String jsonStr)
 

弃用接口(建议使用对应的新接口)

void setBGMNofify (OnBGMNotify notify)
 
boolean playBGM (String path)
 
boolean stopBGM ()
 
boolean pauseBGM ()
 
boolean resumeBGM ()
 
int getMusicDuration (String path)
 
boolean setBGMVolume (float x)
 
boolean setMicVolume (float x)
 
void setBGMPitch (float pitch)
 
void setReverb (int reverbType)
 
void setVoiceChangerType (int voiceChangerType)
 
boolean setBGMPosition (int position)
 

构造及析构函数说明

◆ TXLivePusher()

TXLivePusher ( Context  context)
inline

创建 TXLivePusher 实例

参数
context上下文

成员函数说明

◆ callExperimentalAPI()

void callExperimentalAPI ( final String  jsonStr)
inline

调用实验性 API 接口

注意
该接口用于调用一些实验性功能
参数
jsonStr接口及参数描述的 JSON 字符串

◆ enableAudioVolumeEvaluation()

void enableAudioVolumeEvaluation ( int  intervalMs)
inline

启用麦克风采集音量大小评估

开启后会在 onAudioVolumeEvaluationNotify 中获取到 SDK 对音量大小值的评估。

参数
intervalMs决定了 onAudioVolumeEvaluationNotify 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;

WXLivePusher 重载.

◆ getAudioEffectManager()

TXAudioEffectManager getAudioEffectManager ( )
inline

获取音效管理类 TXAudioEffectManager

该模块是整个 SDK 的音效管理模块,支持如下功能:

  • 耳机耳返:麦克风捕捉的声音实时通过耳机播放。
  • 混响效果:KTV、小房间、大会堂、低沉、洪亮...
  • 变声特效:萝莉、大叔、重金属、外国人...
  • 背景音乐:支持在线音乐和本地音乐,支持变速、变调等特效、支持原生和伴奏并播放和循环播放。
  • 短音效:鼓掌声、欢笑声等简短的音效文件,对于小于10秒的文件,请将 isShortFile 参数设置为 YES。

◆ getBeautyManager()

TXBeautyManager getBeautyManager ( )
inline

获取美颜管理对象

通过美颜管理,您可以使用以下功能:

  • 设置”美颜风格”、”美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“瘦鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。
  • 调整“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”
  • 设置人脸挂件(素材)等动态效果
  • 添加美妆
  • 进行手势识别

◆ getConfig()

TXLivePushConfig getConfig ( )
inline

获取推流器配置信息。

返回
推流器配置信息。

◆ getMaxZoom()

int getMaxZoom ( )
inline

获取摄像头支持的焦距

返回
0 : 不支持变焦 大于0 : 最大焦距

WXLivePusher 重载.

◆ getMusicDuration()

int getMusicDuration ( String  path)
inline

获取背景音乐文件的总时长,单位是毫秒

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
path音乐文件路径,如果 path 为空,那么返回当前正在播放的背景音乐的时长。

◆ isPushing()

boolean isPushing ( )
inline

查询是否正在推流

返回
true:正在推流。 false:未推流。

WXLivePusher 重载.

◆ onLogRecord()

void onLogRecord ( String  str)
inline

输出自己的 log,保存到 SDK 内部的 xlog 文件中

注意
  • 此功能一般仅用在协助调试的情况下
参数
str存入本地文件的 log.

◆ pauseBGM()

boolean pauseBGM ( )
inline

暂停播放背景音乐

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
返回
true:暂停播放成功; false:暂停播放失败

WXLivePusher 重载.

◆ pausePusher()

void pausePusher ( )
inline

暂停摄像头(或屏幕)采集并进入垫片推流状态

SDK 会暂时停止摄像头(或屏幕)采集,并使用 TXLivePushConfig.pauseImg 中指定的图片作为替代图像进行推流,也就是所谓的“垫片”。 这项功能常用于 App 被切到后台运行的场景,尤其是在 iOS 系统中,当 App 切到后台以后,操作系统不会再允许该 App 继续使用摄像头。 此时就可以通过调用 pausePush() 进入垫片状态。

对于绝大多数推流服务器而言,如果超过一定时间不推视频数据,服务器会断开当前的推流链接。

在 TXLivePushConfig 您可以指定:

  • pauseImg 设置后台推流的默认图片,不设置该参数,则默认为黑色背景。
  • pauseFps 设置后台推流帧率,最小值为5,最大值为20,默认10。
  • pauseTime 设置后台推流持续时长,单位秒,默认300秒。
注意
请注意调用顺序:startPush => ( pausePush => resumePush ) => stopPush(),错误的调用顺序会导致 SDK 表现异常。

WXLivePusher 重载.

◆ playBGM()

boolean playBGM ( String  path)
inline

播放背景音乐

SDK 会将背景音乐和麦克风采集的声音进行混合并一起推送到云端。

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
path背景音乐文件路径
返回
true:播放成功;false:播放失败

WXLivePusher 重载.

◆ resumeBGM()

boolean resumeBGM ( )
inline

继续播放背音乐

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
返回
true:恢复播放成功; false:恢复播放失败

WXLivePusher 重载.

◆ resumePusher()

void resumePusher ( )
inline

恢复摄像头采集并结束垫片推流状态

WXLivePusher 重载.

◆ sendCustomPCMData()

void sendCustomPCMData ( byte[]  pcmBuffer)
inline

自定义音频采集,向 SDK 发送自己采集的音频 PCM 数据。

在自定义音频采集模式下,SDK 不再继续从麦克风采集声音,只保留编码和发送能力,您需要定时地发送自己采集的声音数据(PCM 格式)

要开启自定义音频采集,需要完成如下两个步骤:

  • 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_CAPTURE 选项,代表开启自定义音频采集。
  • 设定音频采样率:将 TXLivePushConfig 中的 audioSampleRate 属性设置为您期望的音频采样率,audioChannels 设置为期望的声道数,默认值:1(单声道)。
注意
SDK 对每次传入的 PCM buffer 大小有严格要求,每一个采样点要求是16位宽。 如果是单声道,请保证传入的 PCM 长度为2048;如果是双声道,请保证传入的 PCM 长度为4096。
参数
pcmBufferpcm 音频数据。

◆ sendCustomVideoData()

int sendCustomVideoData ( byte[]  buffer,
int  bufferType,
int  w,
int  h 
)
inline

自定义视频采集,向 SDK 发送自己采集的 YUV 视频数据

在自定义视频采集模式下,SDK 不再继续从摄像头采集图像,只保留编码和发送能力,您需要定时地发送自己采集的视频数据。 要开启自定义视频采集,需要完成如下两个步骤:

  • 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_CAPTURE 选项,代表开启自定义视频采集。
  • 设定视频分辨率:将 TXLivePushConfig 中的 videoResolution 属性设置为您发送 YUV 数据的 width、height。
注意
  • 开启自定义视频采集后,即无需再调用 startPreview 来开启摄像头采集。
  • buffer 方式的处理性能要比 texture 方式的处理性能差很多。
  • SDK 内部不再做帧率控制,请务必保证调用该函数的频率和 TXLivePushConfig 中设置的帧率一致,否则编码器输出的码率会不受控制。
参数
buffer视频数据
bufferType视频格式 目前仅支持 YUV_420P 、RGB_RGBA 两种数据格式
w视频图像的宽度;不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。
h视频图像的高度;不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。
返回
如果返回值大于0,代表发送成功,但发送的帧率过高,超过了 TXLivePushConfig 中设置的帧率, 帧率过高会导致最终编出的码率超过 TXLivePushConfig 中设置的码率,返回值表示当前视频帧比预期提前的毫秒数。
0: 发送成功;
-1: 视频分辨率非法;
-2: YUV 数据长度与设置的视频分辨率所要求的长度不一致;
-3: 视频格式非法;
-4: 视频图像长宽不符合要求,画面比要求的小了;
-1000: SDK 内部错误。

◆ sendCustomVideoTexture()

int sendCustomVideoTexture ( int  textureID,
int  w,
int  h 
)
inline

自定义视频采集,向 SDK 发送自己采集的 texture 视频数据。

在自定义视频采集模式下,SDK 不再继续从摄像头采集图像,只保留编码和发送能力,您需要定时地发送自己采集的视频数据。 要开启自定义视频采集,需要完成如下两个步骤:

  • 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_CAPTURE 选项,代表开启自定义视频采集。
  • 设定视频分辨率:将 TXLivePushConfig 中的 videoResolution 属性设置为您发送 YUV 数据的 width、height。
注意
  • 该接口目前仅支持在 OpenGL(EGL10)环境线程调用,SDK 内部会自动获取 EGL10 的上下文,然后维护一个 sharecontext。
  • 目前仅支持普通纹理,暂不支持外部纹理。
  • 开启自定义视频采集后,即无需再调用 startPreview 来开启摄像头采集。
  • SDK 内部不再做帧率控制,请务必保证调用该函数的频率和 TXLivePushConfig 中设置的帧率一致,否则编码器输出的码率会不受控制。
参数
textureID视频纹理 ID
w视频图像的宽度,不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。
h视频图像的高度,不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。
返回
返回视频数据的发送结果:
0 : 发送成功;
-1 : 视频分辨率非法;
-3 : 视频格式非法;
-4 : 视频图像长宽不符合要求,画面比要求的小了;
-1000: SDK 内部错误。

◆ sendMessage()

void sendMessage ( byte[]  msg)
inline

◆ sendMessageEx()

boolean sendMessageEx ( byte[]  msg)
inline

发送 SEI 消息,播放端 TXLivePlayer 通过 onPlayEvent(EVT_PLAY_GET_MESSAGE) 来接收该消息。

本接口是将数据直接塞入视频数据头中,因此不能太大(几个字节比较合适),一般常用于塞入自定义时间戳等信息。

注意
  • sendMessage 已经不推荐使用,会导致 H5 播放器产生兼容性问题,请使用 sendMessageEx。
  • 若您使用过 sendMessage,不推荐立刻升级到 sendMessageEx。
  • sendMessageEx 发送消息给旧版本的 5.0 及以前的 SDK 版本时,消息会无法正确解析,但播放不受影响。
参数
msg
返回
true:消息发送成功;false:消息发送失败

WXLivePusher 重载.

◆ setAudioProcessListener()

void setAudioProcessListener ( AudioCustomProcessListener  listener)
inline

自定义音频处理回调

自定义音频采集和自定义音频处理不能同时开启,与自定义音频采集不同,自定义音频处理依然是由 SDK 采集麦克风的声音, 但 SDK 会通过 AudioCustomProcessListener 回调将数据回调给您的 App 进行二次加工。

如果要开启自定义音频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_PREPROCESS 选项。

注意
出于性能和稳定性考虑,一般不建议开启此特性。

◆ setAudioVolumeEvaluationListener()

void setAudioVolumeEvaluationListener ( ITXAudioVolumeEvaluationListener  listener)
inline

设置麦克风采集音量大小回调接口

参数
listener麦克风采集音量大小回调接口

◆ setBeautyFilter()

boolean setBeautyFilter ( int  style,
int  beautyLevel,
int  whiteningLevel,
int  ruddyLevel 
)
inline

设置美颜级别和美白级别

参数
style使用哪种磨皮算法,支持光滑和自然两种,光滑风格磨皮更加明显,适合秀场直播。见 TXLiveConstants 中的 BEAUTY_STYLE_XXX 定义。
beautyLevel美颜级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。
whiteningLevel美白级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。
ruddyLevel红润级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。
返回
true:设置成功; false:设置失败。

WXLivePusher 重载.

◆ setBGMNofify()

void setBGMNofify ( OnBGMNotify  notify)
inline

设置背景音乐的回调接口

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
notify回调接口

WXLivePusher 重载.

◆ setBGMPitch()

void setBGMPitch ( float  pitch)
inline

调整背景音乐的音调高低

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
pitch音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数;

◆ setBGMPosition()

boolean setBGMPosition ( int  position)
inline

指定背景音乐的播放位置

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
注意
请尽量避免频繁地调用该接口,因为该接口可能会再次读写 BGM 文件,耗时稍高。 例如:当配合进度条使用时,请在进度条拖动完毕的回调中调用,而避免在拖动过程中实时调用。
参数
position背景音乐的播放位置,单位ms。
返回
结果是否成功,true:成功;false:失败。

◆ setBGMVolume()

boolean setBGMVolume ( float  x)
inline

设置混音时背景音乐的音量大小,仅在播放背景音乐混音时使用

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
x音量大小,1为正常音量,范围是:[0 ~ 1] 之间的浮点数
返回
true:成功;false:失败。

WXLivePusher 重载.

◆ setChinLevel()

void setChinLevel ( int  chinLevel)
inline

设置下巴拉伸或收缩(企业版和企业版Pro EX有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
chinLevel下巴拉伸或收缩级别,取值范围 -9 - 9;0 表示关闭,小于0表示收缩,大于0表示拉伸。

◆ setConfig()

void setConfig ( TXLivePushConfig  config)
inline

设置 TXLivePusher 推流配置项

参数
config推流配置项,详情见 TXLivePushConfig

◆ setExposureCompensation()

void setExposureCompensation ( float  value)
inline

调整曝光比例

参数
value曝光比例,表示该手机支持最大曝光调整值的比例,取值范围从-1到1。 负数表示调低曝光,-1是最小值,对应 getMinExposureCompensation。 正数表示调高曝光,1是最大值,对应 getMaxExposureCompensation。 0表示不调整曝光,默认值为0。

◆ setEyeScaleLevel()

void setEyeScaleLevel ( int  eyeScaleLevel)
inline

设置大眼级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
eyeScaleLevel大眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setFaceShortLevel()

void setFaceShortLevel ( int  faceShortlevel)
inline

设置短脸级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
faceShortlevel短脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setFaceSlimLevel()

void setFaceSlimLevel ( int  faceScaleLevel)
inline

设置瘦脸级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
faceScaleLevel瘦脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setFaceVLevel()

void setFaceVLevel ( int  faceVLevel)
inline

设置 V 脸级别(企业版和企业版Pro EX有效,其它版本设置此参数无效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
faceVLevelV 脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setFilter()

void setFilter ( Bitmap  bmp)
inline

设置指定素材滤镜特效

参数
bmp滤镜图片
注意
滤镜图片一定要用 png 格式,demo 用到的滤镜查找表图片位于 app/src/main/res/drawable-xxhdpi/ 中
弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置滤镜功能

WXLivePusher 重载.

◆ setFocusPosition()

void setFocusPosition ( float  x,
float  y 
)
inline

在 Surface 模式下,设置摄像机的对焦位置

注意
  • Surface 模式下,需要您自行监听点击事件,通知 SDK 进行对焦;详细实现方式,可参考 Demo 实现。
  • 此功能为高级特性,除非您需要使用该特性,否则建议您使用 startCameraPreview(TXCloudVideoView)
参数
x聚焦点位置 x 值
y聚焦点位置 y 值

WXLivePusher 重载.

◆ setGreenScreenFile()

boolean setGreenScreenFile ( String  file)
inline

设置绿幕背景视频(企业版和企业版Pro EX有效,其它版本设置此参数无效)

此处的绿幕功能并非智能抠背,它需要被拍摄者的背后有一块绿色的幕布来辅助产生特效。

参数
file视频文件路径。支持 MP4;null 表示关闭特效。
弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置绿幕功能

◆ setMicVolume()

boolean setMicVolume ( float  x)
inline

设置混音时麦克风音量大小,仅在播放背景音乐混音时使用。

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
x音量大小,1为正常音量,范围是:[0 ~ 1] 之间的浮点数
返回
true:成功;false:失败。

WXLivePusher 重载.

◆ setMirror()

boolean setMirror ( boolean  enable)
inline

设置视频镜像效果

由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。

setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。

参数
enabletrue:播放端看到的是镜像画面;false:播放端看到的是非镜像画面。

WXLivePusher 重载.

◆ setMotionMute()

void setMotionMute ( boolean  motionMute)
inline

设置动效静音(企业版和企业版Pro EX有效,其它版本设置此参数无效)

有些挂件本身会有声音特效,通过此 API 可以关闭这些特效播放时所带的声音效果。

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
motionMutetrue:静音;false:不静音。

◆ setMotionTmpl()

void setMotionTmpl ( String  motionPath)
inline

选择使用哪一款 AI 动效挂件(企业版和企业版Pro EX有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
motionPath动效所在路径

◆ setMute()

void setMute ( boolean  mute)
inline

开启静音

开启静音后,SDK 并不会继续采集麦克风的声音,但是会用非常低(5kbps 左右)的码率推送伪静音数据, 这样做的目的是为了兼容 H5 上的 video 标签,并让录制出来的 mp4 文件有更好的兼容性。

参数
mutetrue:静音;false:不静音

WXLivePusher 重载.

◆ setNoseSlimLevel()

void setNoseSlimLevel ( int  noseSlimLevel)
inline

设置瘦鼻级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
noseSlimLevel瘦鼻级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setPushListener()

void setPushListener ( ITXLivePushListener  listener)
inline

设置推流回调接口

参数
listener播放器回调,请参考 ITXLivePushListener

WXLivePusher 重载.

◆ setRenderRotation()

void setRenderRotation ( int  rotation)
inline

设置本地摄像头预览画面的旋转方向

该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。 如果希望改变观众端看到的视频画面的方向,比如原来是 540x960,希望变成 960x540,则可以通过设置 TXLivePushConfig 中的 homeOrientation 来实现。

// 竖屏推流(HOME 键在下)
_config.homeOrientation = HOME_ORIENTATION_DOWN;
_txLivePublisher.setConfig(_config);
_txLivePublisher.setRenderRotation(0);
// 横屏推流(HOME 键在右)
_config.homeOrientation = HOME_ORIENTATION_RIGHT;
_txLivePublisher.setConfig(_config);
_txLivePublisher.setRenderRotation(90);
参数
rotation取值为 0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。

◆ setReverb()

void setReverb ( int  reverbType)
inline

设置混响效果

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
reverbType混响类型,具体值请参考见 TXLiveConstants 中的 REVERB_TYPE_X 定义。

WXLivePusher 重载.

◆ setSpecialRatio()

void setSpecialRatio ( float  ratio)
inline

设置滤镜浓度

在美女秀场等应用场景里,滤镜浓度的要求会比较高,以便更加突显主播的差异。 我们默认的滤镜浓度是0.5,如果您觉得滤镜效果不明显,可以使用下面的接口进行调节。

参数
ratio取值范围0 - 1的浮点型数字,取值越大滤镜效果越明显,默认取值0.5。
弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置滤镜浓度功能

◆ setSurface()

void setSurface ( Surface  surface)
inline

指定 SDK 渲染所使用的 Surface(仅供微信 App 使用)。

该接口是为了支持微信小程序最新版本中的同层渲染能力而增加的,目的是让微信小程序通知设置渲染用的 Surface, 我们推荐您不要使用此接口,建议直接使用 TXCloudVideoView。

注意
参数
surface渲染 surface. nonnull:开始渲染;null:停止渲染

WXLivePusher 重载.

◆ setSurfaceSize()

void setSurfaceSize ( int  width,
int  height 
)
inline

设置渲染 Surface 的大小(仅供微信 App 使用)。

该接口是为了支持微信小程序最新版本中的同层渲染能力而增加的,目的是让微信小程序通知设置渲染用的 Surface, 我们推荐您不要使用此接口,建议直接使用 TXCloudVideoView。

注意
参数
widthsurface 宽度
heightsurface 高度

WXLivePusher 重载.

◆ setVideoProcessListener()

void setVideoProcessListener ( VideoCustomProcessListener  listener)
inline

自定义视频处理回调

自定义视频采集和自定义视频处理不能同时开启,与自定义视频采集不同,自定义视频处理依然是由 SDK 采集摄像头的画面, 但 SDK 会通过 VideoCustomProcessListener 回调将数据回调给您的 App 进行二次加工。

如果要开启自定义视频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_PREPROCESS 选项。

注意
出于性能和稳定性考虑,一般不建议开启此特性。

◆ setVideoQuality()

void setVideoQuality ( int  quality,
boolean  adjustBitrate,
boolean  adjustResolution 
)
inline

设置视频编码质量

推荐设置:秀场直播 quality:HIGH_DEFINITION;adjustBitrate:NO;adjustResolution:NO。 参考文档:设定清晰度

参数
quality: 画质类型(标清、高清、蓝光)
adjustBitrate: 动态码率开关
adjustResolution: 动态切分辨率开关
注意
adjustResolution 早期被引入是为了让 TXLivePusher 能够满足视频通话这一封闭场景下的一些需求,现已不推荐使用。 如果您有视频通话的需求,可以使用我们专门为视频通话打造的 TRTC 服务。 由于目前很多 H5 播放器不支持分辨率动态变化,所以开启分辨率自适应以后,会导致 H5 播放端和录制文件的很多兼容问题。

◆ setVideoRecordListener()

void setVideoRecordListener ( TXRecordCommon.ITXVideoRecordListener  listener)
inline

设置录制回调接口

参数
listener录制回调接口

◆ setVoiceChangerType()

void setVoiceChangerType ( int  voiceChangerType)
inline

设置变声类型

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
参数
voiceChangerType具体值请参考见 TXLiveConstants 中的 VOICECHANGER_TYPE_X 定义。

◆ setZoom()

boolean setZoom ( int  value)
inline

调整摄像头的焦距

参数
value焦距大小,取值范围 1 - getMaxZoom(),默认值建议设置为1即可。
注意
当 distance 为1的时候为最远视角(正常镜头),当为 getMaxZoom() 的时候为最近视角(放大镜头),最大值不要超过,超过后画面会模糊不清。
返回
true:成功; false:失败

WXLivePusher 重载.

◆ snapshot()

void snapshot ( final ITXSnapshotListener  listener)
inline

推流过程中本地截图

参数
listener截图完成回调

WXLivePusher 重载.

◆ startCameraPreview()

void startCameraPreview ( TXCloudVideoView  view)
inline

启动摄像头预览

启动预览后并不会立即开始 RTMP 推流,需要调用 TXLivePusher#startPusher(String) 才能真正开始推流。

参数
view承载视频画面的控件

WXLivePusher 重载.

◆ startPusher()

int startPusher ( String  rtmpURL)
inline

启动 RTMP 推流

针对腾讯云的推流地址,会采用 QUIC 协议进行加速,配合改进后的 BBR2 带宽测算方案,可以最大限度的利用主播的上行带宽,降低直播卡顿率。

参数
rtmpURL推流地址,参考文档:获取推流地址
注意
-5 返回码代表 license 校验失败,TXLivePusher 需要 license 校验通过才能工作。
返回
0: 启动成功;-1: 启动失败;-5:license 校验失败。

WXLivePusher 重载.

◆ startRecord()

int startRecord ( final String  videoFilePath)
inline

开始录制短视频

注意
  • 只有启动推流后才能开始录制,非推流状态下启动录制无效。
  • 出于安装包体积的考虑,仅专业版和企业版两个版本的 LiteAVSDK 支持该功能,直播精简版仅定义了接口但并未实现。
  • 录制过程中请勿动态切换分辨率和软硬编,会有很大概率导致生成的视频异常。
参数
videoFilePath视频录制后存储路径
返回
0:成功;-1:videoPath 为空;-2:上次录制尚未结束,请先调用 stopRecord;-3:推流尚未开始。

◆ startScreenCapture()

void startScreenCapture ( )
inline

启动录屏推流(基于 MediaProjection 技术实现)

如果要开启“隐私模式”,请调用pausePusher接口推默认图及静音数据,取消隐私模式调用resumePusher

◆ stopBGM()

boolean stopBGM ( )
inline

停止播放背景音乐

弃用:
v7.4 版本弃用,请使用 TXAudioEffectManager 设置音效和背景音乐
返回
true:停止播放成功; false:停止播放失败

WXLivePusher 重载.

◆ stopCameraPreview()

void stopCameraPreview ( boolean  isNeedClearLastImg)
inline

停止摄像头预览。

参数
isNeedClearLastImg是否需要清除最后一帧画面;true:清除最后一帧画面;false:保留最后一帧画面

WXLivePusher 重载.

◆ stopPusher()

void stopPusher ( )
inline

停止 RTMP 推流

WXLivePusher 重载.

◆ stopRecord()

void stopRecord ( )
inline

结束录制短视频,当停止推流后,如果视频还在录制中,SDK 内部会自动结束录制。

返回
0:成功; -1:不存在录制任务。

◆ stopScreenCapture()

void stopScreenCapture ( )
inline

结束录屏推流

◆ switchCamera()

void switchCamera ( )
inline

切换前后摄像头

注意
默认使用前置摄像头,该接口在启动预览 startCameraPreview(TXCloudVideoView) 后调用才能生效,预览前调用无效。

WXLivePusher 重载.

◆ turnOnFlashLight()

boolean turnOnFlashLight ( boolean  enable)
inline

打开后置摄像头旁边的闪光灯

此操作对于前置摄像头是无效的,因为绝大多数手机都没有给前置摄像头配置闪光灯。

参数
enabletrue:打开闪光灯; false:关闭闪光灯
返回
true:打开成功;false:打开失败

WXLivePusher 重载.

结构体成员变量说明

◆ RGB_BGRA

final int RGB_BGRA = 4
static

◆ RGB_RGBA

final int RGB_RGBA = 5
static

◆ YUV_420P

final int YUV_420P = 3
static

◆ YUV_420SP

final int YUV_420SP = 1
static

◆ YUV_420YpCbCr

final int YUV_420YpCbCr = 2
static