腾讯云直播SDKTXLivePlayer_音视频解决方案_同尘科技

直播SDK 2年前 (2023-07-06) 浏览 25

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

SDK 基础函数

TXLivePlayer

创建 TXLivePlayer 实例。

 TXLivePlayer(Context context)

参数

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

setConfig

设置 TXLivePlayer 播放配置项。

void setConfig(TXLivePlayConfig config)

参数

参数 类型 含义
config TXLivePlayConfig 播放器配置项,请参见 TXLivePlayConfig。

setPlayListener

设置播放回调接口。

void setPlayListener(ITXLivePlayListener listener)

参数

参数 类型 含义
listener ITXLivePlayListener 播放器回调,请参见 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 ITXAudioVolumeEvaluationListener 音量大小回调接口。

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 ITXSnapshotListener 截图回调。

自定义数据处理

setVideoRawDataListener

设置软解码视频数据回调。

void setVideoRawDataListener(final ITXVideoRawDataListener listener)

说明此功能会有一定的性能开销,特别是在高分辨率的情况下。除非您有特殊的需求,否则不建议您开启。

setAudioRawDataListener

设置音频数据回调。

void setAudioRawDataListener(ITXAudioRawDataListener listener)

参数

参数 类型 含义
listener ITXAudioRawDataListener 音频数据回调。

说明音频播放器会在播放数据的前一刻,调用此函数,同步回调将要播放的数据。请不要在函数内做耗时操作,否则会影响声音播放的流畅性。

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]。



对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?