TXLivePusher

最近更新时间:2019-05-21 14:23:41

功能

直播推流类。

介绍

主要负责将本地的音视频画面进行编码和 RTMP 推送,包含如下技术特点:

  • 针对腾讯云的推流地址,会采用 QUIC 协议进行加速,配合改进后的 BBR2 带宽测算方案,可以最大限度的利用主播的上行带宽,降低直播卡顿率。
  • 内嵌套的 Qos 流量控制技术具备上行网络自适应能力,可以根据主播端网络的具体情况实时调节音视频数据量。
  • 内嵌多套美颜磨皮算法(自然&光滑)和多款色彩空间滤镜(支持自定义滤镜),可以根据需要自行选择。
  • 商业版包含了基于优图 AI 人脸识别技术的大眼、瘦脸、隆鼻以及动效挂架,只需要购买优图 License 就可以零成本集成。
  • 支持自定义的音视频采集和渲染,让您可以根据项目需要选择自己的音视频数据源。

SDK 基础函数

TXLivePusher

创建 TXLivePusher 实例。

 TXLivePusher(Context context)

参数

参数 类型 含义
context Context 上下文。

setConfig

设置 TXLivePusher 推流配置项。

void setConfig(TXLivePushConfig config)

参数

参数 类型 含义
config TXLivePushConfig 推流配置项,详情见 TXLivePushConfig}。

getConfig

获取推流器配置信息。

TXLivePushConfig getConfig()

返回

推流器配置信息。


setPushListener

设置推流回调接口。

void setPushListener(ITXLivePushListener listener)

参数

参数 类型 含义
listener ITXLivePushListener 播放器回调,请参考 ITXLivePushListener

推流基础接口

startCameraPreview

启动摄像头预览。

void startCameraPreview(TXCloudVideoView view)

参数

参数 类型 含义
view TXCloudVideoView 承载视频画面的控件。

介绍

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


stopCameraPreview

停止摄像头预览。

void stopCameraPreview(boolean isNeedClearLastImg)

参数

参数 类型 含义
isNeedClearLastImg boolean 是否需要清除最后一帧画面;true:清除最后一帧画面,false:保留最后一帧画面。

返回

是否成功停止播放,0:成功;非0:失败。


startPusher

启动 RTMP 推流。

int startPusher(String rtmpURL)

参数

参数 类型 含义
rtmpURL String 推流地址,参考文档:获取推流地址

返回

0:成功; -1:启动失败。

介绍

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


stopPusher

停止 RTMP 推流。

void stopPusher()

startScreenCapture

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

void startScreenCapture()

介绍

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


stopScreenCapture

结束录屏推流。

void stopScreenCapture()

pausePusher

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

void pausePusher()

介绍

SDK 会暂时停止摄像头或屏幕采集,并使用 TXLivePushConfig.pauseImg 中指定的图片作为替代图像进行推流,也就是所谓的“垫片”。 这项功能常用于 App 被切到后台运行的场景,尤其是在 iOS 系统中,当 App 切到后台以后,操作系统不会再允许该 App 继续使用摄像头。 此时就可以通过调用 pausePush() 进入垫片状态。
对于绝大多数推流服务器而言,如果超过一定时间不推视频数据,服务器会断开当前的推流链接。
TXLivePushConfig 您可以指定:

  • pauseImg 设置后台推流的默认图片,不设置该参数,则默认为黑色背景。
  • pauseFps 设置后台推流帧率,最小值为5,最大值为20,默认10。
  • pauseTime 设置后台推流持续时长,单位秒,默认300秒。

说明:

请注意调用顺序:startPush => ( pausePush => resumePush ) => stopPush(),错误的调用顺序会导致 SDK 表现异常。


resumePusher

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

void resumePusher()

isPushing

查询是否正在推流。

boolean isPushing()

返回

true:正在推流,false:未推流。


视频相关接口

setVideoQuality

设置视频编码质量。

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

参数

参数 类型 含义
quality int 画质类型(标清、高清、超高清)。
adjustBitrate boolean 动态码率开关。
adjustResolution boolean 动态切分辨率开关。

介绍

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

说明:

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


switchCamera

切换前后摄像头。

void switchCamera()

说明:

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


setMirror

设置视频镜像效果。

boolean setMirror(boolean enable)

参数

参数 类型 含义
enable boolean true:播放端看到的是镜像画面;false:播放端看到的是非镜像画面。

介绍

由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。
setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。

说明:

仅当前使用前置摄像头时,setMirror 接口才会生效,在使用后置摄像头时此接口无效。


setRenderRotation

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

void setRenderRotation(int rotation)

参数

参数 类型 含义
rotation int 取值为0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。

介绍

该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。 如果希望改变观众端看到的视频画面的方向,比如原来是 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];

turnOnFlashLight

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

boolean turnOnFlashLight(boolean enable)

参数

参数 类型 含义
enable boolean true:打开闪光灯; false:关闭闪光灯。

返回

true:打开成功;false:打开失败。

介绍

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


getMaxZoom

获取摄像头支持的焦距。

int getMaxZoom()

返回

0:不支持变焦;大于0:最大焦距。


setZoom

调整摄像头的焦距。

boolean setZoom(int value)

参数

参数 类型 含义
value int 焦距大小,取值范围:1 - getMaxZoom(),默认值建议设置为1即可。

返回

true:成功; false:失败。

说明:

当distance为1的时候为最远视角(正常镜头),当为 getMaxZoom() 的时候为最近视角(放大镜头),最大值不要超过,超过后画面会模糊不清。


setExposureCompensation

调整曝光比例。

void setExposureCompensation(float value)

参数

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

美颜相关接口

setBeautyFilter

设置美颜级别和美白级别。

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

参数

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

返回

true:设置成功; false:设置失败。


setFilter

设置指定素材滤镜特效。

void setFilter(Bitmap bmp)

参数

参数 类型 含义
bmp Bitmap 滤镜图片。

说明:

滤镜图片一定要用 png 格式,demo 用到的滤镜查找表图片位于 app/src/main/res/drawable-xxhdpi/ 中。


setSpecialRatio

设置滤镜浓度。

void setSpecialRatio(float ratio)

参数

参数 类型 含义
ratio float 取值范围0 - 1的浮点型数字,取值越大滤镜效果越明显,默认取值0.5。

介绍

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


商业版美颜和动效挂件

setEyeScaleLevel

设置大眼级别(商业版有效,其它版本设置此参数无效)。

void setEyeScaleLevel(int eyeScaleLevel)

参数

参数 类型 含义
eyeScaleLevel int 大眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

setFaceSlimLevel

设置瘦脸级别(商业版有效,其它版本设置此参数无效)。

void setFaceSlimLevel(int faceScaleLevel)

参数

参数 类型 含义
faceScaleLevel int 瘦脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

setFaceVLevel

设置V脸级别(商业版有效,其它版本设置此参数无效)。

void setFaceVLevel(int faceVLevel)

参数

参数 类型 含义
faceVLevel int V 脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

setChinLevel

设置下巴拉伸或收缩(商业版有效,其它版本设置此参数无效)。

void setChinLevel(int chinLevel)

参数

参数 类型 含义
chinLevel int 下巴拉伸或收缩级别,取值范围:-9 - 9;0 表示关闭,小于0表示收缩,大于0表示拉伸。

setFaceShortLevel

设置短脸级别(商业版有效,其它版本设置此参数无效)。

void setFaceShortLevel(int faceShortlevel)

参数

参数 类型 含义
faceShortlevel int 短脸级别,取值范围:0 - 9;0表示关闭,1 - 9值越大,效果越明显。

setNoseSlimLevel

设置瘦鼻级别(商业版有效,其它版本设置此参数无效)。

void setNoseSlimLevel(int noseSlimLevel)

参数

参数 类型 含义
noseSlimLevel int 瘦鼻级别,取值范围:0 - 9;0表示关闭,1 - 9值越大,效果越明显。

setGreenScreenFile

设置绿幕背景视频(商业版有效,其它版本设置此参数无效)。

boolean setGreenScreenFile(String file)

参数

参数 类型 含义
file String 视频文件路径。支持 MP4;null 表示关闭特效。

介绍

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


setMotionTmpl

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

void setMotionTmpl(String motionPath)

参数

参数 类型 含义
motionPath String 动效所在路径。

setMotionMute

设置动效静音(商业版有效,其它版本设置此参数无效)。

void setMotionMute(boolean motionMute)

参数

参数 类型 含义
motionMute boolean true:静音;false:不静音。

介绍

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


音频相关接口

setMute

开启静音。

void setMute(boolean mute)

参数

参数 类型 含义
mute boolean true:静音;false:不静音。

介绍

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


setBGMNofify

设置背景音乐的回调接口。

void setBGMNofify(OnBGMNotify notify)

参数

参数 类型 含义
notify OnBGMNotify 回调接口。

playBGM

播放背景音乐。

boolean playBGM(String path)

参数

参数 类型 含义
path String 背景音乐文件路径。

返回

true:播放成功;false:播放失败。

介绍

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


stopBGM

停止播放背景音乐。

boolean stopBGM()

返回

true:停止播放成功; false:停止播放失败。


pauseBGM

暂停播放背景音乐。

boolean pauseBGM()

返回

true:暂停播放成功; false:暂停播放失败。


resumeBGM

继续播放背音乐。

boolean resumeBGM()

返回

true:恢复播放成功; false:恢复播放失败。


getMusicDuration

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

int getMusicDuration(String path)

参数

参数 类型 含义
path String 音乐文件路径,如果 path 为空,那么返回当前正在播放的背景音乐的时长。

setBGMVolume

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

boolean setBGMVolume(float x)

参数

参数 类型 含义
x float 音量大小,1为正常音量,建议值为0 - 2之间的浮点数,如果需要增益可以设置更大的值。

返回

true:成功;false:失败。


setMicVolume

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

boolean setMicVolume(float x)

参数

参数 类型 含义
x float 音量大小,1为正常音量,建议值为0 - 2之间的浮点数,如果需要增益可以设置更大的值。

返回

true:成功;false:失败。


setBgmPitch

调整背景音乐的音调高低。

void setBgmPitch(float pitch)

参数

参数 类型 含义
pitch float 音调,默认值是0.0f,范围是:-1 - 1之间的浮点数。

setReverb

设置混响效果。

void setReverb(int reverbType)

参数

参数 类型 含义
reverbType int 混响类型,具体值请参考见 TXLiveConstants 中的 REVERB_TYPE_X 定义。

setVoiceChangerType

设置变声类型。

void setVoiceChangerType(int voiceChangerType)

参数

参数 类型 含义
voiceChangerType int 具体值请参考见 TXLiveConstants 中的 VOICECHANGER_TYPE_X 定义。

本地录制接口

setVideoRecordListener

设置录制回调接口。

void setVideoRecordListener(TXRecordCommon.ITXVideoRecordListener listener)

参数

参数 类型 含义
listener TXRecordCommon.ITXVideoRecordListener 录制回调接口。

startRecord

开始录制短视频。

int startRecord(final String videoFilePath)

参数

参数 类型 含义
videoFilePath final String 视频录制后存储路径。

返回

0:成功;-1:videoPath 为空;-2:上次录制尚未结束,请先调用 stopRecord;-3:推流尚未开始。

说明:

  • 只有启动推流后才能开始录制,非推流状态下启动录制无效。
  • 出于安装包体积的考虑,仅专业版和商业版两个版本的 LiteAVSDK 支持该功能,直播精简版仅定义了接口但并未实现。
  • 录制过程中请勿动态切换分辨率和软硬编,会有很大概率导致生成的视频异常。

stopRecord

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

void stopRecord()

返回

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


snapshot

推流过程中本地截图。

void snapshot(final ITXSnapshotListener listener)

参数

参数 类型 含义
listener final ITXSnapshotListener 截图完成回调。

自定义采集和处理

sendCustomVideoTexture

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

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

参数

参数 类型 含义
textureID int 视频纹理ID。
w int 视频图像的宽度,不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。
h int 视频图像的高度,不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。

返回

返回视频数据的发送结果:
0: 发送成功;
-1: 视频分辨率非法;
-3: 视频格式非法;
-4: 视频图像长宽不符合要求,画面比要求的小了;
-1000: SDK 内部错误。

介绍

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

  • 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_CAPTURE 选项,代表开启自定义视频采集。
  • 设定视频分辨率:将 TXLivePushConfig 中的 videoResolution 属性设置为您发送 YUV 数据的 width、height。

说明:

  • 该接口目前仅支持在 OpenGL(EGL10)环境线程调用,SDK 内部会自动获取 EGL10 的上下文,然后维护一个 sharecontext。
  • 目前仅支持普通纹理,暂不支持外部纹理。
  • 开启自定义视频采集后,即无需再调用 startPreview 来开启摄像头采集。
  • SDK 内部不再做帧率控制,请务必保证调用该函数的频率和 TXLivePushConfig 中设置的帧率一致,否则编码器输出的码率会不受控制。

sendCustomVideoData

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

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

参数

参数 类型 含义
buffer byte [] 视频数据。
bufferType int 视频格式 目前仅支持 YUV_420P 、RGB_RGBA 两种数据格式。
w int 视频图像的宽度;不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。
h int 视频图像的高度;不能大于 TXLivePushConfig 中的 videoResolution 属性设定的宽度,否则会失败,小于时 SDK 会自动裁剪。

返回

如果返回值大于0,代表发送成功,但发送的帧率过高,超过了 TXLivePushConfig 中设置的帧率, 帧率过高会导致最终编出的码率超过 TXLivePushConfig 中设置的码率,返回值表示当前视频帧比预期提前的毫秒数。
0: 发送成功;
-1: 视频分辨率非法;
-2: YUV 数据长度与设置的视频分辨率所要求的长度不一致;
-3: 视频格式非法;
-4: 视频图像长宽不符合要求,画面比要求的小了;
-1000: SDK 内部错误。

介绍

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

  • 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_CAPTURE 选项,代表开启自定义视频采集。
  • 设定视频分辨率:将 TXLivePushConfig 中的 videoResolution 属性设置为您发送 YUV 数据的 width、height。

说明:

  • 开启自定义视频采集后,即无需再调用 startPreview 来开启摄像头采集。
  • buffer 方式的处理性能要比 texture 方式的处理性能差很多。
  • SDK 内部不再做帧率控制,请务必保证调用该函数的频率和 TXLivePushConfig 中设置的帧率一致,否则编码器输出的码率会不受控制。

sendCustomPCMData

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

void sendCustomPCMData(byte [] pcmBuffer)

参数

参数 类型 含义
pcmBuffer byte [] pcm 音频数据。

介绍

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

  • 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_CAPTURE 选项,代表开启自定义音频采集。
  • 设定音频采样率:将 TXLivePushConfig 中的 audioSampleRate 属性设置为您期望的音频采样率,audioChannels 设置为期望的声道数,默认值:1(单声道)。

说明:

SDK 对每次传入的 PCM buffer 大小有严格要求,每一个采样点要求是16位宽。 如果是单声道,请保证传入的 PCM 长度为2048;如果是双声道,请保证传入的 PCM 长度为4096。


setVideoProcessListener

自定义视频处理回调。

void setVideoProcessListener(VideoCustomProcessListener listener)

介绍

自定义视频采集和自定义视频处理不能同时开启,与自定义视频采集不同,自定义视频处理依然是由 SDK 采集摄像头的画面, 但 SDK 会通过 VideoCustomProcessListener 回调将数据回调给您的 App 进行二次加工。
如果要开启自定义视频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_PREPROCESS 选项。

说明:

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


setAudioProcessListener

自定义音频处理回调。

void setAudioProcessListener(AudioCustomProcessListener listener)

介绍

自定义音频采集和自定义音频处理不能同时开启,与自定义音频采集不同,自定义音频处理依然是由 SDK 采集麦克风的声音, 但 SDK 会通过 AudioCustomProcessListener 回调将数据回调给您的 App 进行二次加工。
如果要开启自定义音频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_PREPROCESS 选项。

说明:

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


setSurface

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

void setSurface(Surface surface)

参数

参数 类型 含义
surface Surface 渲染 surface,Nonnull:开始渲染;null:停止渲染。

介绍

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

说明:


setSurfaceSize

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

void setSurfaceSize(int width, int height)

参数

参数 类型 含义
width int surface 宽度。
height int surface 高度。

介绍

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

说明:

  • Surface 大小变化后,需要重新设定。
  • 此功能为高级特性,除非您非常明确需要使用该特性,否则建议您使用 startCameraPreview(TXCloudVideoView)

setFocusPosition

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

void setFocusPosition(float x, float y)

参数

参数 类型 含义
x float 聚焦点位置 x 值。
y float 聚焦点位置 y 值。

说明:

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

更多实用接口

sendMessageEx

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

boolean sendMessageEx(byte [] msg)

参数

参数 类型 含义
msg byte [] -

返回

true:消息发送成功;false:消息发送失败。

说明:

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

sendMessage

void sendMessage(byte [] msg)

onLogRecord

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

void onLogRecord(String str)

参数

参数 类型 含义
str String 存入本地文件的 log。

说明:

  • 此功能一般仅用在协助调试的情况下。

VideoCustomProcessListener

功能

自定义视频处理回调类。

onTextureCustomProcess

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

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

参数

参数 类型 含义
textureId int 纹理 ID。
width int 纹理的宽度。
height int 纹理的高度。

返回

返回给 SDK 的纹理 ID,如果不做任何处理,返回传入的纹理 ID 即可。


onDetectFacePoints

增值版回调人脸坐标。

void onDetectFacePoints(float [] points)

参数

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

onTextureDestoryed

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

void onTextureDestoryed()

AudioCustomProcessListener

功能

自定义音频处理回调类。

onRecordRawPcmData

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

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

参数

参数 类型 含义
data byte [] pcm 数据。
ts long pcm 对应时间戳。
sampleRate int 音频采样率。
channels int 音频通道。
bits int 音频 bits。
withBgm boolean 回调的数据是否包含 BGM,当不开启回声消除时,回调的 raw pcm 会包含 bgm。

onRecordPcmData

回调 SDK 录制音频 PCM 数据。

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

参数

参数 类型 含义
data byte [] pcm 数据。
ts long pcm 对应时间戳。
sampleRate int 音频采样率。
channels int 音频通道。
bits int 音频 bits。

OnBGMNotify

功能

背景音乐回调类。

onBGMStart

音乐播放开始的回调通知。

void onBGMStart()

onBGMProgress

音乐播放进度的回调通知。

void onBGMProgress(long progress, long duration)

参数

参数 类型 含义
progress long 当前 BGM 已播放时间(ms)。
duration long 当前 BGM 总时间(ms)。

onBGMComplete

音乐播放结束的回调通知。

void onBGMComplete(int err)

参数

参数 类型 含义
err int 0:正常结束;-1:出错结束。

ITXSnapshotListener

功能

截图回调类。

onSnapshot

void onSnapshot(Bitmap bmp)