TXLivePlayer

最近更新时间:2023-07-06 16:54:42

我的收藏
功能
视频播放器。
介绍
主要负责将直播流的音视频画面进行解码和本地渲染,包含如下技术特点:
针对腾讯云的拉流地址,可使用低延时拉流,实现直播连麦等相关场景。
针对腾讯云的拉流地址,可使用直播时移功能,能够实现直播观看与时移观看的无缝切换。
支持自定义的音视频数据处理,您可以根据项目需要处理直播流中的音视频数据,然后进行渲染以及播放。
SDK 仅支持 Android 4.2 以上的版本。

SDK 基础函数

TXLivePlayer

创建 TXLivePlayer 实例。
TXLivePlayer(Context context)
参数
参数
类型
含义
context
Context
上下文。

setConfig

设置 TXLivePlayer 播放配置项。
void setConfig(TXLivePlayConfig config)
参数
参数
类型
含义
config
播放器配置项,请参见 TXLivePlayConfig

setPlayListener

设置播放回调接口。
void setPlayListener(ITXLivePlayListener listener)
参数
参数
类型
含义
listener
播放器回调,请参见 ITXLivePlayListener

播放基础接口

setPlayerView

设置播放器的视频渲染 View。
void setPlayerView(TXCloudVideoView glRootView)
参数
参数
类型
含义
glRootView
TXCloudVideoView
视频渲染 View。

startLivePlay

播放器开始播放。
int startLivePlay(String playUrl, int playType)
参数
参数
类型
含义
playUrl
String
播放的流地址。
playType
int
播放类型。
返回
是否成功启动播放, 0:成功;-1:失败,playUrl 为空;-2:失败,playUrl 非法;-3:失败,playType 非法;-5:licence 校验失败。
介绍
可播放的直播流连接:
RTMP 直播流:PLAY_TYPE_LIVE_RTMP。
FLV 直播流:PLAY_TYPE_LIVE_FLV。
RTMP 加速流,用于连麦:PLAY_TYPE_LIVE_RTMP_ACC。
说明
startLivePlay 之前,需要通过 V2TXLivePremier#setLicence 或者 TXLiveBase#setLicence 设置 License 后方可成功播放,否则将播放失败(黑屏),全局仅设置一次即可。直播 License、短视频 License 和视频播放 License 均可使用,若您暂未获取上述 License ,可 快速免费申请测试版 License 以正常播放,正式版 License 需 购买

stopPlay

停止播放。
int stopPlay(boolean isNeedClearLastImg)
参数
参数
类型
含义
isNeedClearLastImg
boolean
true:清除;false:不清除。
返回
0:成功;非0:失败。
介绍
isNeedClearLastImg 提供是否清除最后一帧画面的逻辑:
推荐在正常停止播放时,进行清除。
异常播放,如网络异常等,而您希望等待重连服务器,继续播放时,推荐保留。

isPlaying

是否正在播放。
boolean isPlaying()
返回
true:正在播放;false:未播放。

pause

暂停播放。
void pause()
介绍
停止获取流数据,保留最后一帧画面。

resume

恢复播放。
void resume()
介绍
重新获取数据,获取当前直播数据。

setSurface

使用 Surface 模式用于本地渲染。
void setSurface(Surface surface)
参数
参数
类型
含义
surface
Surface
视频渲染 surface。
说明
目前仅支持硬解。
使用该接口需要 setPlayerView(TXCloudVideoView) 传入 null。
此功能为高级特性,除非您需要使用该特性,否则建议您使用 setPlayerView(TXCloudVideoView)

setSurfaceSize

设置渲染 Surface 的大小。
void setSurfaceSize(int width, int height)
参数
参数
类型
含义
width
int
宽。
height
int
高。
说明
Surface 大小变化后,需要重新设定。
此功能为高级特性,除非您需要使用该特性,否则建议您使用 setPlayerView(TXCloudVideoView)

播放配置接口

setRenderMode

设置播放渲染模式。
void setRenderMode(int mode)
参数
参数
类型
含义
mode
int
图像渲染模式,可以设置值为:TXLiveConstants#RENDER_MODE_FULL_FILL_SCREEN、TXLiveConstants#RENDER_MODE_ADJUST_RESOLUTION。
介绍
渲染模式有两种:
平铺模式:视频画面将会按照比例铺满屏幕,多余部分会被裁减掉,此模式下不会有黑边。
自适应模式:视频画面将等比例缩放,会居中显示,此模式可能会有黑边。

setRenderRotation

设置图像渲染角度。
void setRenderRotation(int rotation)
参数
参数
类型
含义
rotation
int
图像渲染角度,可设置值为:TXLiveConstants#RENDER_ROTATION_PORTRAIT、TXLiveConstants#RENDER_ROTATION_LANDSCAPE。
介绍
渲染角度有两种:
竖屏:播放是竖屏播放的时候使用。
横屏:播放是横屏播放的时候使用。

enableHardwareDecode

开启硬件加速。
boolean enableHardwareDecode(boolean enable)
参数
参数
类型
含义
enable
boolean
true:启用视频硬解码, false:禁用视频硬解码。
返回
true:关闭或开启硬件加速成功;false:关闭或开启硬件加速失败。

setMute

设置是否静音播放。
void setMute(boolean mute)
参数
参数
类型
含义
mute
boolean
true:静音播放;false:不静音播放。

setVolume

设置音量。
void setVolume(int volume)
参数
参数
类型
含义
volume
int
音量大小,取值范围 0 - 100。

setAudioRoute

设置声音播放模式。
void setAudioRoute(int audioRoute)
参数
参数
类型
含义
audioRoute
int
声音播放模式,可设置值:TXLiveConstants#AUDIO_ROUTE_RECEIVER、TXLiveConstants#AUDIO_ROUTE_SPEAKER。
介绍
播放模式有两种:
听筒:声音将从听筒播出。
扬声器:声音将从扬声器播出。

switchStream

FLV 多清晰度切换。
int switchStream(String playUrl)
参数
参数
类型
含义
playUrl
String
播放的流地址。
介绍
使用说明:
必须是腾讯云的直播地址。
必须是当前播放直播流的不同清晰度,切换到无关流地址可能会失败。

setAudioVolumeEvaluationListener

设置音量大小回调接口。
void setAudioVolumeEvaluationListener(ITXAudioVolumeEvaluationListener listener)
参数
参数
类型
含义
listener
音量大小回调接口。

enableAudioVolumeEvaluation

启用音量大小评估。
void enableAudioVolumeEvaluation(int intervalMs)
参数
参数
类型
含义
intervalMs
int
intervalMs 决定了 onAudioVolumeEvaluationNotify 回调的触发间隔,单位为ms,最小间隔为 100ms,如果小于等于 0 则会关闭回调,建议设置为 300ms。
介绍
开启后会在 onAudioVolumeEvaluationNotify 中获取到 SDK 对音量大小值的评估。

callExperimentalAPI

调用实验性 API 接口。
void callExperimentalAPI(final String jsonStr)
参数
参数
类型
含义
jsonStr
String
jsonStr 接口及参数描述的 JSON 字符串。
介绍
该接口用于调用一些实验性功能。

本地录制和截图

setVideoRecordListener

设置录制回调接口。
void setVideoRecordListener(TXRecordCommon.ITXVideoRecordListener listener)
参数
参数
类型
含义
listener
TXRecordCommon.ITXVideoRecordListener
接口。

startRecord

启动视频录制。
int startRecord(int recordType)
参数
参数
类型
含义
recordType
int
TXRecordCommon#RECORD_TYPE_STREAM_SOURCE
返回
0表示成功,非0表示失败。
介绍
目前录制格式仅支持录制直播流,TXRecordCommon#RECORD_TYPE_STREAM_SOURCE。

stopRecord

停止视频录制。
int stopRecord()
返回
0表示成功,非0表示失败。

snapshot

播放过程中本地截图。
void snapshot(ITXSnapshotListener listener)
参数
参数
类型
含义
listener
截图回调。

自定义数据处理

setVideoRawDataListener

设置软解码视频数据回调。
void setVideoRawDataListener(final ITXVideoRawDataListener listener)
说明
此功能会有一定的性能开销,特别是在高分辨率的情况下。
除非您有特殊的需求,否则不建议您开启。

setAudioRawDataListener

设置音频数据回调。
void setAudioRawDataListener(ITXAudioRawDataListener listener)
参数
参数
类型
含义
listener
音频数据回调。
说明
音频播放器会在播放数据的前一刻,调用此函数,同步回调将要播放的数据。
请不要在函数内做耗时操作,否则会影响声音播放的流畅性。


ITXSnapshotListener

功能
截图回调接口类。

onSnapshot

截图回调。
void onSnapshot(Bitmap bmp)
参数
参数
类型
含义
bmp
Bitmap
当前视频图片。

ITXVideoRawDataListener

功能
软解视频数据回调接口类。

onVideoRawDataAvailable

软解码器解出一帧数据回调一次。
void onVideoRawDataAvailable(byte [] yuvBuffer, int width, int height, int timestamp)
参数
参数
类型
含义
yuvBuffer
byte []
I420 格式 YUV 数据。
width
int
视频宽度。
height
int
视频高度。
timestamp
int
视频 PTS。

ITXAudioRawDataListener

功能
音频原始数据接口类。

onPcmDataAvailable

音频播放数据回调,数据格式 :PCM。
void onPcmDataAvailable(byte [] buf, long timestamp)
参数
参数
类型
含义
buf
byte []
pcm 数据。
timestamp
long
时间戳。
介绍
音频播放器会在播放数据的前一刻,调用此函数,同步回调将要播放的数据。因此在函数内部做耗时操作可能会影响播放。

onAudioInfoChanged

音频播放信息回调。
void onAudioInfoChanged(int sampleRate, int channels, int bits)
参数
参数
类型
含义
sampleRate
int
采样率。
channels
int
声道数。
bits
int
采样点大小。

ITXAudioVolumeEvaluationListener

功能
播放器音量大小回调。

onAudioVolumeEvaluationNotify

播放器音量大小回调。
void onAudioVolumeEvaluationNotify(int volume)
参数
参数
类型
含义
volume
int
音量大小, 取值范围 [0,100]。