功能
视频播放器。
介绍
主要负责将直播流的音视频画面进行解码和本地渲染,包含如下技术特点:
针对腾讯云的拉流地址,可使用低延时拉流,实现直播连麦等相关场景。
针对腾讯云的拉流地址,可使用直播时移功能,能够实现直播观看与时移观看的无缝切换。
支持自定义的音视频数据处理,您可以根据项目需要处理直播流中的音视频数据,然后进行渲染以及播放。
SDK 仅支持 Android 4.2 以上的版本。
SDK 基础函数
TXLivePlayer
TXLivePlayer(Context context)
参数
参数 | 类型 | 含义 |
context | Context | 上下文。 |
setConfig
void setConfig(TXLivePlayConfig config)
参数
参数 | 类型 | 含义 |
config |
setPlayListener
设置播放回调接口。
void setPlayListener(ITXLivePlayListener listener)
参数
参数 | 类型 | 含义 |
listener |
播放基础接口
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 | 高。 |
播放配置接口
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 |
介绍
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]。 |