Public 成员函数 | |
WXLivePusher (Context context) | |
void | setPushListener (ITXLivePushListener listener) |
void | setPusherUrl (String pusherUrl) |
void | setConfig (WXLivePushConfig config) |
void | setSurface (Surface surface) |
void | setSurfaceSize (int width, int height) |
boolean | setBeautyFilter (int style, int beautyLevel, int whiteningLevel, int ruddyLevel) |
void | startCameraPreview (TXCloudVideoView view) |
void | stopCameraPreview (boolean isNeedClearLastImg) |
void | startAudioRecord () |
void | stopAudioRecord () |
int | startDumpAudioData (String filePath) |
void | stopDumpAudioData () |
void | switchCamera () |
boolean | setMirror (boolean enable) |
void | setMute (boolean mute) |
boolean | turnOnFlashLight (boolean enable) |
int | getMaxZoom () |
boolean | setZoom (int value) |
void | setFocusPosition (float x, float y) |
void | showDebugLog (boolean show) |
boolean | isPushing () |
void | setFilter (Bitmap bitmap) |
void | setAudioVolumeEvaluationListener (ITXAudioVolumeEvaluationListener listener) |
void | enableAudioVolumeEvaluation (int intervalMs) |
int | startPusher (String pusherUrl) |
void | stopPusher () |
void | pausePusher () |
void | resumePusher () |
void | snapshot (final ITXSnapshotListener listener) |
void | setBGMNofify (OnBGMNotify notify) |
boolean | playBGM (String path) |
boolean | stopBGM () |
boolean | pauseBGM () |
boolean | resumeBGM () |
boolean | setBGMVolume (float x) |
boolean | setMicVolume (float x) |
void | setReverb (int reverbType) |
boolean | sendMessageEx (byte[] msg) |
void | resetParams () |
void | apiOnlineLog (String msg, boolean isOnlineLog) |
静态 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 基础函数 | |
void | setConfig (TXLivePushConfig config) |
TXLivePushConfig | getConfig () |
推流基础接口 | |
void | startScreenCapture () |
void | stopScreenCapture () |
视频相关接口 | |
void | setVideoQuality (int quality, boolean adjustBitrate, boolean adjustResolution) |
void | setRenderRotation (int rotation) |
void | setExposureCompensation (float value) |
美颜相关接口 | |
TXBeautyManager | getBeautyManager () |
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) |
音频相关接口 | |
TXAudioEffectManager | getAudioEffectManager () |
void | setAudioVolumeEvaluationListener (ITXAudioVolumeEvaluationListener listener) |
本地录制接口 | |
void | setVideoRecordListener (TXRecordCommon.ITXVideoRecordListener listener) |
int | startRecord (final String videoFilePath) |
void | stopRecord () |
自定义采集和处理 | |
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 | sendMessage (byte[] msg) |
void | onLogRecord (String str) |
void | callExperimentalAPI (final String jsonStr) |
弃用接口(建议使用对应的新接口) | |
int | getMusicDuration (String path) |
void | setBGMPitch (float pitch) |
void | setVoiceChangerType (int voiceChangerType) |
boolean | setBGMPosition (int position) |
|
inline |
|
inline |
|
inlineinherited |
调用实验性 API 接口
jsonStr | 接口及参数描述的 JSON 字符串 |
|
inline |
启用麦克风采集音量大小评估
开启后会在 onAudioVolumeEvaluationNotify 中获取到 SDK 对音量大小值的评估。
intervalMs | 决定了 onAudioVolumeEvaluationNotify 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms; |
重载 TXLivePusher .
|
inlineinherited |
获取音效管理类 TXAudioEffectManager
该模块是整个 SDK 的音效管理模块,支持如下功能:
|
inlineinherited |
获取美颜管理对象
通过美颜管理,您可以使用以下功能:
|
inlineinherited |
获取推流器配置信息。
|
inline |
|
inlineinherited |
获取背景音乐文件的总时长,单位是毫秒
path | 音乐文件路径,如果 path 为空,那么返回当前正在播放的背景音乐的时长。 |
|
inline |
|
inlineinherited |
输出自己的 log,保存到 SDK 内部的 xlog 文件中
str | 存入本地文件的 log. |
|
inline |
暂停播放背景音乐
重载 TXLivePusher .
|
inline |
暂停摄像头(或屏幕)采集并进入垫片推流状态
SDK 会暂时停止摄像头(或屏幕)采集,并使用 TXLivePushConfig.pauseImg 中指定的图片作为替代图像进行推流,也就是所谓的“垫片”。 这项功能常用于 App 被切到后台运行的场景,尤其是在 iOS 系统中,当 App 切到后台以后,操作系统不会再允许该 App 继续使用摄像头。 此时就可以通过调用 pausePush() 进入垫片状态。
对于绝大多数推流服务器而言,如果超过一定时间不推视频数据,服务器会断开当前的推流链接。
在 TXLivePushConfig 您可以指定:
重载 TXLivePusher .
|
inline |
播放背景音乐
SDK 会将背景音乐和麦克风采集的声音进行混合并一起推送到云端。
path | 背景音乐文件路径 |
重载 TXLivePusher .
|
inline |
|
inline |
继续播放背音乐
重载 TXLivePusher .
|
inline |
恢复摄像头采集并结束垫片推流状态
重载 TXLivePusher .
|
inlineinherited |
自定义音频采集,向 SDK 发送自己采集的音频 PCM 数据。
在自定义音频采集模式下,SDK 不再继续从麦克风采集声音,只保留编码和发送能力,您需要定时地发送自己采集的声音数据(PCM 格式)
要开启自定义音频采集,需要完成如下两个步骤:
pcmBuffer | pcm 音频数据。 |
|
inlineinherited |
自定义视频采集,向 SDK 发送自己采集的 YUV 视频数据
在自定义视频采集模式下,SDK 不再继续从摄像头采集图像,只保留编码和发送能力,您需要定时地发送自己采集的视频数据。 要开启自定义视频采集,需要完成如下两个步骤:
buffer | 视频数据 |
bufferType | 视频格式 目前仅支持 YUV_420P 、RGB_RGBA 两种数据格式 |
w | 视频图像的宽度;不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。 |
h | 视频图像的高度;不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。 |
|
inlineinherited |
自定义视频采集,向 SDK 发送自己采集的 texture 视频数据。
在自定义视频采集模式下,SDK 不再继续从摄像头采集图像,只保留编码和发送能力,您需要定时地发送自己采集的视频数据。 要开启自定义视频采集,需要完成如下两个步骤:
textureID | 视频纹理 ID |
w | 视频图像的宽度,不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。 |
h | 视频图像的高度,不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。 |
|
inlineinherited |
|
inline |
发送 SEI 消息,播放端 TXLivePlayer 通过 onPlayEvent(EVT_PLAY_GET_MESSAGE) 来接收该消息。
本接口是将数据直接塞入视频数据头中,因此不能太大(几个字节比较合适),一般常用于塞入自定义时间戳等信息。
msg |
重载 TXLivePusher .
|
inlineinherited |
自定义音频处理回调
自定义音频采集和自定义音频处理不能同时开启,与自定义音频采集不同,自定义音频处理依然是由 SDK 采集麦克风的声音, 但 SDK 会通过 AudioCustomProcessListener 回调将数据回调给您的 App 进行二次加工。
如果要开启自定义音频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_PREPROCESS 选项。
|
inline |
|
inlineinherited |
设置麦克风采集音量大小回调接口
listener | 麦克风采集音量大小回调接口 |
|
inline |
设置美颜级别和美白级别
style | 使用哪种磨皮算法,支持光滑和自然两种,光滑风格磨皮更加明显,适合秀场直播。见 TXLiveConstants 中的 BEAUTY_STYLE_XXX 定义。 |
beautyLevel | 美颜级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。 |
whiteningLevel | 美白级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
ruddyLevel | 红润级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
重载 TXLivePusher .
|
inline |
|
inlineinherited |
调整背景音乐的音调高低
pitch | 音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数; |
|
inlineinherited |
指定背景音乐的播放位置
position | 背景音乐的播放位置,单位ms。 |
|
inline |
设置混音时背景音乐的音量大小,仅在播放背景音乐混音时使用
x | 音量大小,1为正常音量,范围是:[0 ~ 1] 之间的浮点数 |
重载 TXLivePusher .
|
inlineinherited |
设置下巴拉伸或收缩(企业版和企业版Pro EX有效,其它版本设置此参数无效)
chinLevel | 下巴拉伸或收缩级别,取值范围 -9 - 9;0 表示关闭,小于0表示收缩,大于0表示拉伸。 |
|
inlineinherited |
设置 TXLivePusher 推流配置项
config | 推流配置项,详情见 TXLivePushConfig |
|
inline |
|
inlineinherited |
调整曝光比例
value | 曝光比例,表示该手机支持最大曝光调整值的比例,取值范围从-1到1。 负数表示调低曝光,-1是最小值,对应 getMinExposureCompensation。 正数表示调高曝光,1是最大值,对应 getMaxExposureCompensation。 0表示不调整曝光,默认值为0。 |
|
inlineinherited |
设置大眼级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)
eyeScaleLevel | 大眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
|
inlineinherited |
设置短脸级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)
faceShortlevel | 短脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
|
inlineinherited |
设置瘦脸级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)
faceScaleLevel | 瘦脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
|
inlineinherited |
设置 V 脸级别(企业版和企业版Pro EX有效,其它版本设置此参数无效
faceVLevel | V 脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
|
inline |
设置指定素材滤镜特效
bmp | 滤镜图片 |
重载 TXLivePusher .
|
inline |
在 Surface 模式下,设置摄像机的对焦位置
x | 聚焦点位置 x 值 |
y | 聚焦点位置 y 值 |
重载 TXLivePusher .
|
inlineinherited |
设置绿幕背景视频(企业版和企业版Pro EX有效,其它版本设置此参数无效)
此处的绿幕功能并非智能抠背,它需要被拍摄者的背后有一块绿色的幕布来辅助产生特效。
file | 视频文件路径。支持 MP4;null 表示关闭特效。 |
|
inline |
设置混音时麦克风音量大小,仅在播放背景音乐混音时使用。
x | 音量大小,1为正常音量,范围是:[0 ~ 1] 之间的浮点数 |
重载 TXLivePusher .
|
inline |
设置视频镜像效果
由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。
setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。
enable | true:播放端看到的是镜像画面;false:播放端看到的是非镜像画面。 |
重载 TXLivePusher .
|
inlineinherited |
设置动效静音(企业版和企业版Pro EX有效,其它版本设置此参数无效)
有些挂件本身会有声音特效,通过此 API 可以关闭这些特效播放时所带的声音效果。
motionMute | true:静音;false:不静音。 |
|
inlineinherited |
选择使用哪一款 AI 动效挂件(企业版和企业版Pro EX有效,其它版本设置此参数无效)
motionPath | 动效所在路径 |
|
inline |
开启静音
开启静音后,SDK 并不会继续采集麦克风的声音,但是会用非常低(5kbps 左右)的码率推送伪静音数据, 这样做的目的是为了兼容 H5 上的 video 标签,并让录制出来的 mp4 文件有更好的兼容性。
mute | true:静音;false:不静音 |
重载 TXLivePusher .
|
inlineinherited |
设置瘦鼻级别(企业版和企业版Pro EX有效,其它版本设置此参数无效)
noseSlimLevel | 瘦鼻级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
|
inline |
|
inline |
|
inlineinherited |
设置本地摄像头预览画面的旋转方向
该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。 如果希望改变观众端看到的视频画面的方向,比如原来是 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(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。 |
|
inline |
设置混响效果
reverbType | 混响类型,具体值请参考见 TXLiveConstants 中的 REVERB_TYPE_X 定义。 |
重载 TXLivePusher .
|
inlineinherited |
设置滤镜浓度
在美女秀场等应用场景里,滤镜浓度的要求会比较高,以便更加突显主播的差异。 我们默认的滤镜浓度是0.5,如果您觉得滤镜效果不明显,可以使用下面的接口进行调节。
ratio | 取值范围0 - 1的浮点型数字,取值越大滤镜效果越明显,默认取值0.5。 |
|
inline |
指定 SDK 渲染所使用的 Surface(仅供微信 App 使用)。
该接口是为了支持微信小程序最新版本中的同层渲染能力而增加的,目的是让微信小程序通知设置渲染用的 Surface, 我们推荐您不要使用此接口,建议直接使用 TXCloudVideoView。
surface | 渲染 surface. nonnull:开始渲染;null:停止渲染 |
重载 TXLivePusher .
|
inline |
设置渲染 Surface 的大小(仅供微信 App 使用)。
该接口是为了支持微信小程序最新版本中的同层渲染能力而增加的,目的是让微信小程序通知设置渲染用的 Surface, 我们推荐您不要使用此接口,建议直接使用 TXCloudVideoView。
width | surface 宽度 |
height | surface 高度 |
重载 TXLivePusher .
|
inlineinherited |
自定义视频处理回调
自定义视频采集和自定义视频处理不能同时开启,与自定义视频采集不同,自定义视频处理依然是由 SDK 采集摄像头的画面, 但 SDK 会通过 VideoCustomProcessListener 回调将数据回调给您的 App 进行二次加工。
如果要开启自定义视频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_PREPROCESS 选项。
|
inlineinherited |
设置视频编码质量
推荐设置:秀场直播 quality:HIGH_DEFINITION;adjustBitrate:NO;adjustResolution:NO。 参考文档:设定清晰度。
quality | : 画质类型(标清、高清、蓝光) |
adjustBitrate | : 动态码率开关 |
adjustResolution | : 动态切分辨率开关 |
|
inlineinherited |
设置录制回调接口
listener | 录制回调接口 |
|
inlineinherited |
设置变声类型
voiceChangerType | 具体值请参考见 TXLiveConstants 中的 VOICECHANGER_TYPE_X 定义。 |
|
inline |
调整摄像头的焦距
value | 焦距大小,取值范围 1 - getMaxZoom(),默认值建议设置为1即可。 |
重载 TXLivePusher .
|
inline |
|
inline |
|
inline |
|
inline |
启动摄像头预览
启动预览后并不会立即开始 RTMP 推流,需要调用 TXLivePusher#startPusher(String) 才能真正开始推流。
view | 承载视频画面的控件 |
重载 TXLivePusher .
|
inline |
|
inline |
启动 RTMP 推流
针对腾讯云的推流地址,会采用 QUIC 协议进行加速,配合改进后的 BBR2 带宽测算方案,可以最大限度的利用主播的上行带宽,降低直播卡顿率。
rtmpURL | 推流地址,参考文档:获取推流地址。 |
重载 TXLivePusher .
|
inlineinherited |
开始录制短视频
videoFilePath | 视频录制后存储路径 |
|
inlineinherited |
启动录屏推流(基于 MediaProjection 技术实现)
如果要开启“隐私模式”,请调用pausePusher接口推默认图及静音数据,取消隐私模式调用resumePusher。
|
inline |
|
inline |
停止播放背景音乐
重载 TXLivePusher .
|
inline |
|
inline |
|
inline |
停止 RTMP 推流
重载 TXLivePusher .
|
inlineinherited |
结束录制短视频,当停止推流后,如果视频还在录制中,SDK 内部会自动结束录制。
|
inlineinherited |
结束录屏推流
|
inline |
切换前后摄像头
重载 TXLivePusher .
|
inline |
打开后置摄像头旁边的闪光灯
此操作对于前置摄像头是无效的,因为绝大多数手机都没有给前置摄像头配置闪光灯。
enable | true:打开闪光灯; false:关闭闪光灯 |
重载 TXLivePusher .
|
staticinherited |
|
staticinherited |
|
staticinherited |
|
staticinherited |
|
staticinherited |