LiteAVSDK
腾讯云音视频 SDK ,服务于数万家企业客户的高可用组件,致力于最大限度地节省您的研发成本。
TXLivePlayer

详细描述

腾讯云直播播放器接口类


结构体说明

◆ com::tencent::rtmp::TXLivePlayer::ITXSnapshotListener

interface com::tencent::rtmp::TXLivePlayer::ITXSnapshotListener

Public 成员函数

void onSnapshot (Bitmap bmp)
 

成员函数说明

◆ onSnapshot()

void onSnapshot ( Bitmap  bmp)

截图回调

参数
bmp当前视频图片

◆ com::tencent::rtmp::TXLivePlayer::ITXVideoRawDataListener

interface com::tencent::rtmp::TXLivePlayer::ITXVideoRawDataListener

Public 成员函数

void onVideoRawDataAvailable (byte[] yuvBuffer, int width, int height, int timestamp)
 

成员函数说明

◆ onVideoRawDataAvailable()

void onVideoRawDataAvailable ( byte[]  yuvBuffer,
int  width,
int  height,
int  timestamp 
)

软解码器解出一帧数据回调一次

需要在回调中再次调用addVideoRawData(byte[])将 buffer 塞给 SDK 来填充下一帧 YUV 数据。

参数
yuvBufferI420格式 YUV 数据
width视频宽度
height视频高度
timestamp视频 PTS

◆ com::tencent::rtmp::TXLivePlayer::TXLiteAVTexture

class com::tencent::rtmp::TXLivePlayer::TXLiteAVTexture
成员变量
Object eglContext javax.microedition.khronos.egl.EGLContext 或 android.opengl.EGLContext 定义的 OpenGL Context
int height 视频高度
int textureId 视频纹理 ID
int width 视频宽度

◆ com::tencent::rtmp::TXLivePlayer::ITXLivePlayVideoRenderListener

interface com::tencent::rtmp::TXLivePlayer::ITXLivePlayVideoRenderListener

Public 成员函数

void onRenderVideoFrame (TXLiteAVTexture texture)
 

成员函数说明

◆ onRenderVideoFrame()

void onRenderVideoFrame ( TXLiteAVTexture  texture)

解码器解出一帧数据回调一次

参数
texture视频纹理

◆ com::tencent::rtmp::TXLivePlayer::ITXAudioRawDataListener

interface com::tencent::rtmp::TXLivePlayer::ITXAudioRawDataListener

Public 成员函数

void onPcmDataAvailable (byte[] buf, long timestamp)
 
void onAudioInfoChanged (int sampleRate, int channels, int bits)
 

成员函数说明

◆ onAudioInfoChanged()

void onAudioInfoChanged ( int  sampleRate,
int  channels,
int  bits 
)

音频播放信息回调

参数
sampleRate采样率
channels声道数
bits采样点大小

◆ onPcmDataAvailable()

void onPcmDataAvailable ( byte[]  buf,
long  timestamp 
)

音频播放数据回调,数据格式 :PCM

音频播放器会在播放数据的前一刻,调用此函数,同步回调将要播放的数据。因此在函数内部做耗时操作可能会影响播放。

参数
bufpcm 数据
timestamp时间戳

◆ com::tencent::rtmp::TXLivePlayer::ITXAudioVolumeEvaluationListener

interface com::tencent::rtmp::TXLivePlayer::ITXAudioVolumeEvaluationListener

Public 成员函数

void onAudioVolumeEvaluationNotify (int volume)
 

成员函数说明

◆ onAudioVolumeEvaluationNotify()

void onAudioVolumeEvaluationNotify ( int  volume)

播放器音量大小回调

参数
volume音量大小, 取值范围 [0, 100]

WXLivePlayerLite 内被实现.

◆ com::tencent::rtmp::TXLivePlayer

class com::tencent::rtmp::TXLivePlayer

静态 Public 属性

static final String TAG = "TXLivePlayer"
 
static final int PLAY_TYPE_LIVE_RTMP = 0
 
static final int PLAY_TYPE_LIVE_FLV = 1
 
static final int PLAY_TYPE_VOD_FLV = 2
 
static final int PLAY_TYPE_VOD_HLS = 3
 
static final int PLAY_TYPE_VOD_MP4 = 4
 
static final int PLAY_TYPE_LIVE_RTMP_ACC = 5
 
static final int PLAY_TYPE_LOCAL_VIDEO = 6
 

SDK 基础函数

 TXLivePlayer (Context context)
 
void setConfig (TXLivePlayConfig config)
 
void setPlayListener (ITXLivePlayListener listener)
 

播放基础接口

void setPlayerView (TXCloudVideoView glRootView)
 
int startLivePlay (String playUrl, int playType)
 
int stopPlay (boolean isNeedClearLastImg)
 
boolean isPlaying ()
 
void pause ()
 
void resume ()
 
void setSurface (Surface surface)
 
void setSurfaceSize (int width, int height)
 
long getCurrentRenderPts ()
 

播放配置接口

void setRenderMode (int mode)
 
void setRenderRotation (int rotation)
 
boolean enableHardwareDecode (boolean enable)
 
void setMute (boolean mute)
 
void setVolume (int volume)
 
void setAudioRoute (int audioRoute)
 
int switchStream (String playUrl)
 
void setAudioVolumeEvaluationListener (ITXAudioVolumeEvaluationListener listener)
 
void enableAudioVolumeEvaluation (int intervalMs)
 
void callExperimentalAPI (final String jsonStr)
 

本地录制和截图

void setVideoRecordListener (TXRecordCommon.ITXVideoRecordListener listener)
 
int startRecord (int recordType)
 
int stopRecord ()
 
void snapshot (ITXSnapshotListener listener)
 

自定义数据处理

boolean addVideoRawData (byte[] yuvBuffer)
 
void setVideoRawDataListener (final ITXVideoRawDataListener listener)
 
int setVideoRenderListener (final ITXLivePlayVideoRenderListener listener, Object glContext)
 
void setAudioRawDataListener (ITXAudioRawDataListener listener)
 

直播时移接口

int prepareLiveSeek (String domain, int bizid)
 
void seek (int time)
 
int resumeLive ()
 

待废弃接口

void setAutoPlay (boolean autoPlay)
 
void setRate (float rate)
 

构造及析构函数说明

◆ TXLivePlayer()

TXLivePlayer ( Context  context)
inline

创建 TXLivePlayer 实例

参数
context上下文

成员函数说明

◆ addVideoRawData()

boolean addVideoRawData ( byte[]  yuvBuffer)
inline

设置软解码数据载体 Buffer

三个注意点:

参数
yuvBuffer

◆ callExperimentalAPI()

void callExperimentalAPI ( final String  jsonStr)
inline

调用实验性 API 接口

注意
该接口用于调用一些实验性功能
参数
jsonStr接口及参数描述的 JSON 字符串

◆ enableAudioVolumeEvaluation()

void enableAudioVolumeEvaluation ( int  intervalMs)
inline

启用音量大小评估

开启后会在 onAudioVolumeEvaluationNotify 中获取到 SDK 对音量大小值的评估。

参数
intervalMs决定了 onAudioVolumeEvaluationNotify 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ enableHardwareDecode()

boolean enableHardwareDecode ( boolean  enable)
inline

开启硬件加速

参数
enabletrue:启用视频硬解码, false:禁用视频硬解码
返回
true:关闭或开启硬件加速成功, false:关闭或开启硬件加速失败

◆ getCurrentRenderPts()

long getCurrentRenderPts ( )
inline

获取当前渲染帧 pts

返回
0:当前未处于正在播放状态(例如:未启播等) >0:当前渲染视频帧的 pts,处于正在播放状态 (单位: 毫秒)

◆ isPlaying()

boolean isPlaying ( )
inline

是否正在播放

返回
true:正在播放。 false:未播放。

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ pause()

void pause ( )
inline

暂停播放

停止获取流数据,保留最后一帧画面。

◆ prepareLiveSeek()

int prepareLiveSeek ( String  domain,
int  bizid 
)
inline

直播时移准备

使用说明:

  • 非腾讯云直播地址不能时移。
  • 使用时移功能需在播放开始后调用此方法,否则时移失败。
  • 时移的使用请参考文档:直播时移播放使用文档
参数
domain时移域名
bizid流 bizid
返回
0:OK;-1:无直播地址;-2:appId 未配置。

◆ resume()

void resume ( )
inline

恢复播放

重新获取数据,获取当前直播数据。

◆ resumeLive()

int resumeLive ( )
inline

恢复直播播放

从直播时移播放中,恢复到直播播放。

◆ seek()

void seek ( int  time)
inline

直播时移跳转

直播流则会时移到该时间点。

参数
time视频流时间点,单位为秒

◆ setAudioRawDataListener()

void setAudioRawDataListener ( ITXAudioRawDataListener  listener)
inline

设置音频数据回调

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

◆ setAudioRoute()

void setAudioRoute ( int  audioRoute)
inline

设置声音播放模式

播放模式有两种:

  • 听筒:声音将从听筒播出
  • 扬声器:声音将从扬声器播出
参数
audioRoute声音播放模式,可设置值:TXLiveConstants#AUDIO_ROUTE_SPEAKERTXLiveConstants#AUDIO_ROUTE_SPEAKER

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setAudioVolumeEvaluationListener()

void setAudioVolumeEvaluationListener ( ITXAudioVolumeEvaluationListener  listener)
inline

设置音量大小回调接口

参数
listener音量大小回调接口

WXLivePlayerLite 重载.

◆ setAutoPlay()

void setAutoPlay ( boolean  autoPlay)
inline

设置点播自动播放

弃用:
待废弃,此接口仅针对点播视频使用,对直播视频无效;若您想使用点播功能,请使用 TXVodPlayer 进行点播播放
参数
autoPlay自动播放开关

◆ setConfig()

void setConfig ( TXLivePlayConfig  config)
inline

设置 TXLivePlayer 播放配置项

参数
config播放器配置项了,详情见 TXLivePlayConfig

◆ setMute()

void setMute ( boolean  mute)
inline

设置是否静音播放

参数
mutetrue:静音播放, false:不静音播放

◆ setPlayerView()

void setPlayerView ( TXCloudVideoView  glRootView)
inline

设置播放器的视频渲染 View

参数
glRootView视频渲染 view。

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setPlayListener()

void setPlayListener ( ITXLivePlayListener  listener)
inline

设置播放回调接口

参数
listener播放器回调,请参考 ITXLivePlayListener

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setRate()

void setRate ( float  rate)
inline

设置点播播放速率

弃用:
待废弃,此接口仅针对点播视频使用,对直播视频无效;若您想使用点播功能,请使用 TXVodPlayer 进行点播播放
参数
rate

◆ setRenderMode()

void setRenderMode ( int  mode)
inline

设置播放渲染模式

渲染模式有两种:

  • 平铺模式:视频画面将会按照比例铺满屏幕,多余部分会被裁减掉,此模式下不会有黑边。
  • 自适应模式:视频画面将等比例缩放,会居中显示,此模式可能会有黑边。
参数
mode图像渲染模式,可以设置值为:TXLiveConstants#RENDER_MODE_FULL_FILL_SCREENTXLiveConstants#RENDER_MODE_ADJUST_RESOLUTION

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setRenderRotation()

void setRenderRotation ( int  rotation)
inline

设置图像渲染角度

渲染角度有两种:

  • 竖屏:播放是竖屏播放的时候使用
  • 横屏:播放是横屏播放的时候使用
参数
rotation图像渲染角度,可设置值为:TXLiveConstants#RENDER_ROTATION_PORTRAITTXLiveConstants#RENDER_ROTATION_LANDSCAPE

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setSurface()

void setSurface ( Surface  surface)
inline

使用 Surface 模式用于本地渲染

参数
surface视频渲染 surface。
注意

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setSurfaceSize()

void setSurfaceSize ( int  width,
int  height 
)
inline

设置渲染 Surface 的大小

参数
width
height
注意
  • Surface 大小变化后,需要重新设定
  • 此功能为高级特性,除非您需要使用该特性,否则建议您使用 setPlayerView(TXCloudVideoView)

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ setVideoRawDataListener()

void setVideoRawDataListener ( final ITXVideoRawDataListener  listener)
inline

设置软解码视频数据回调

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

◆ setVideoRecordListener()

void setVideoRecordListener ( TXRecordCommon.ITXVideoRecordListener  listener)
inline

设置录制回调接口

参数
listener接口

◆ setVideoRenderListener()

int setVideoRenderListener ( final ITXLivePlayVideoRenderListener  listener,
Object  glContext 
)
inline

设置视频渲染纹理回调

参数
listener自定义渲染纹理回调
glContextOpenGL 上下文,如果您的渲染模块使用 (javax.microedition.khronos.egl.*) 定义的 OpenGL 接口,请填 javax.microedition.khronos.egl.EGLContext 类型的对象 如果您的渲染模块使用 (android.opengl.*) 定义的 OpenGL 接口,请填 android.opengl.EGLContext 类型的对象。 如果填 null 表示使用 SDK 内部默认的 javax.microedition.khronos.egl.EGLContext 环境
返回
0:成功;-1:glContext 类型非法。

◆ setVolume()

void setVolume ( int  volume)
inline

设置音量

参数
volume音量大小,取值范围0 - 100

◆ snapshot()

void snapshot ( ITXSnapshotListener  listener)
inline

播放过程中本地截图

参数
listener截图回调

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ startLivePlay()

int startLivePlay ( String  playUrl,
int  playType 
)
inline

播放器开始播放

可播放的直播流类型:

注意
10.7 版本开始,需要通过 TXLiveBase#setLicence 设置 Licence 后方可成功播放,否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence,可快速免费申请测试版 Licence 以正常播放,正式版 Licence 需购买
参数
playUrl播放的流地址
playType播放类型
返回
是否成功启动播放。0: 成功;-1: 失败,playUrl 为空;-2: 失败,playUrl 非法;-3: 失败,playType 非法;-5:licence 不合法,播放失败

◆ startRecord()

int startRecord ( int  recordType)
inline

启动视频录制

目前录制格式仅支持录制直播流,TXRecordCommon#RECORD_TYPE_STREAM_SOURCE

参数
recordTypeTXRecordCommon#RECORD_TYPE_STREAM_SOURCE
返回
0表示成功,非0表示失败

◆ stopPlay()

int stopPlay ( boolean  isNeedClearLastImg)
inline

停止播放

isNeedClearLastImg 提供是否清除最后一帧画面的逻辑:

  • 推荐在正常停止播放时,进行清除
  • 异常播放,如网络异常等,而您希望等待重连服务器,继续播放时,推荐保留
参数
isNeedClearLastImgtrue:清除;false:不清除
返回
0:成功;非0:失败。

WXLivePlayer , 以及 WXLivePlayerLite 重载.

◆ stopRecord()

int stopRecord ( )
inline

停止视频录制

返回
0表示成功,非0表示失败

◆ switchStream()

int switchStream ( String  playUrl)
inline

多清晰度切换

使用说明:

  • 必须是腾讯云的直播地址。
  • 必须是当前播放直播流的不同清晰度,切换到无关流地址可能会失败。
参数
playUrl播放的流地址

结构体成员变量说明

◆ PLAY_TYPE_LIVE_FLV

final int PLAY_TYPE_LIVE_FLV = 1
static

◆ PLAY_TYPE_LIVE_RTMP

final int PLAY_TYPE_LIVE_RTMP = 0
static

播放类型

◆ PLAY_TYPE_LIVE_RTMP_ACC

final int PLAY_TYPE_LIVE_RTMP_ACC = 5
static

◆ PLAY_TYPE_LOCAL_VIDEO

final int PLAY_TYPE_LOCAL_VIDEO = 6
static

◆ PLAY_TYPE_VOD_FLV

final int PLAY_TYPE_VOD_FLV = 2
static

◆ PLAY_TYPE_VOD_HLS

final int PLAY_TYPE_VOD_HLS = 3
static

◆ PLAY_TYPE_VOD_MP4

final int PLAY_TYPE_VOD_MP4 = 4
static

◆ TAG

final String TAG = "TXLivePlayer"
static