TXVodPlayer

最近更新时间:2025-06-04 15:55:52

我的收藏

TXVodPlayer API 简介

TXVodPlayer 是核心播放类,主要负责播放、暂停和倍速控制等播放控制。播放器的完整能力请参见 播放器 SDK 功能说明

接口概览

基础播放接口

API
描述
播放 HTTP URL 形式地址。10.7版本开始,startPlay 变更为 startVodPlay,需要通过 {@link TXLiveBase#setLicence} 设置 Licence 后方可成功播放, 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和播放器 Licence 均可使用,若您暂未获取上述 Licence ,可单击 播放器 License 进行申请,正式版 License 需购买。
以 fileId 形式播放,传入TXPlayInfoParams 参数。10.7版本开始,startPlay 变更为 startVodPlay,需要通过 {@link TXLiveBase#setLicence} 设置 Licence 后方可成功播放, 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和播放器 Licence 均可使用,若您暂未获取上述 Licence 可单击 播放器 License 进行申请,正式版 License 需购买。
播放 DRM 加密视频。
stopPlay
停止播放。
isPlaying
是否正在播放。
pause
暂停播放,停止获取流数据,保留最后一帧画面。
resume
恢复播放,重新获取流数据。
seek
跳转到视频流指定时间点,单位秒。
seek
跳转到视频流指定时间点,单位秒,小数点后精确到3位。
获取当前播放位置,单位秒。
获取缓存的总时长,单位秒。
获取总时长,单位秒。
获取可播放时长,单位秒。
getWidth
获取视频宽度。
getHeight
获取视频高度。
设置点播是否 startPlay 后自动开始播放,默认自动播放。
设置播放开始时间。
setToken
加密 HLS 的 token。
获取加固加密播放密钥。
setLoop
设置是否循环播放。
isLoop
返回是否循环播放状态。
添加外挂字幕(播放器高级版本才支持)。
返回字幕轨道信息列表(播放器高级版本才支持)。
返回音频轨道信息列表(播放器高级版本才支持)。
选择轨道(播放器高级版本才支持)。
取消选择轨道(播放器高级版本才支持)。
跳转到视频流指定 PDT(Program Date Time )时间点,可实现视频快进、快退、进度条跳转等功能,目前只支持 HLS 视频格式(播放器高级版 11.6 版本开始支持)。
参数单位毫秒(ms)。

播放器配置接口

API
描述
setConfig
设置播放器配置信息,配置信息请参见 TXVodPlayConfig
设置播放器的视频渲染 TXCloudVideoView。
设置播放器的视频渲染 TextureView。
设置播放器的视频渲染 Surface。
设置播放器业务参数,参数格式为<String,Object>
设置字幕样式信息,可在播放后对字幕样式进行更新(播放器高级版本才支持)。
设置字幕渲染目标对象 View(播放器高级版本才支持)。
设置音量均衡,响度范围,可填预设值(相关类或文件:Android:TXVodConstants;iOS:TXVodPlayConfig.h)
关:AUDIO_NORMALIZATION_OFF
开:
AUDIO_NORMALIZATION_STANDARD(标准)
AUDIO_NORMALIZATION_LOW (低)
AUDIO_NORMALIZATION_HIGH(高)
可填自定义数值:从低到高,范围-70 - 0 LUFS。

视频相关接口

API
描述
启用或禁用视频硬解码。
snapshot
获取当前视频帧图像。
注意:由于获取当前帧图像是比较耗时的操作,所以截图会通过异步回调出来。
setMirror
设置镜像。
setRate
设置点播的播放速率,默认1.0。
返回当前播放的码率索引。
当播放地址为 HSL 时,返回支持的码率(清晰度)列表。
设置当前正在播放的码率索引,无缝切换清晰度。清晰度切换可能需要等待一小段时间。
设置自适应播放可切换的最高码率。

音频相关接口

API
描述
setMute
设置是否静音播放。
设置音量大小,范围:0 - 100。
设置是否自动获取音频焦点,默认自动获取。

事件通知接口

API
描述
设置视频字幕文本数据输出回调。
设置播放器事件回调。

TRTC 播片相关接口

通过以下接口,可以把点播播放器的音视频流通过 TRTC 进行推送,更多 TRTC 服务请参见 TRTC 产品概述
API
描述
点播绑定到 TRTC 服务。
点播解绑 TRTC 服务。
开始推送视频流。
取消推送视频流。
开始推送音频流。
取消推送音频流。

接口详情

TXVodPlayer

创建点播播放器实例。
public TXVodPlayer(Context context)
参数说明
参数名
类型
描述
context
Context
系统 Context。

startVodPlay

通过 URL 启动播放。
10.7 版本开始,需要通过 XLiveBase#setLicence 设置 Licence 后方可成功播放, 否则将播放失败(黑屏),全局仅设置一次即可。
public int startVodPlay(String playUrl)
参数说明
参数名
类型
描述
playUrl
String
播放地址。
返回值
0: 播放成功。
非 0: 播放失败。

startVodPlay

通过腾讯云 fileId 启动播放。
10.7 版本开始,需要通过 XLiveBase#setLicence 设置 Licence 后方可成功播放, 否则将播放失败(黑屏),全局仅设置一次即可。
public void startVodPlay(TXPlayInfoParams playInfoParams)
参数说明
参数名
类型
描述
playInfoParams
TXPlayInfoParams
系统 Context。
返回值
0: 播放成功。
非 0: 播放失败。

startPlayDrm

播放 Drm 加密视频。
10.7 版本开始,需要通过 XLiveBase#setLicence 设置 Licence 后方可成功播放, 否则将播放失败(黑屏),全局仅设置一次即可。
注意:
播放器高级版本才支持。
public int startPlayDrm(TXPlayerDrmBuilder playerDrmBuilder)
参数说明
参数名
类型
描述
playerDrmBuilder
TXPlayerDrmBuilder
Drm 播放信息。
返回值
0: 播放成功。
非 0: 播放失败。

stopPlay

停止播放。
public int stopPlay(boolean isNeedClearLastImg)
参数说明
参数名
类型
描述
isNeedClearLastImg
boolean
是否需要清除最后一帧画面。
true:清除最后一帧画面,正常停止播放时,推荐清除。
false:保留最后一帧画面。

isPlaying

是否正在播放。
public boolean isPlaying()

pause

暂停播放。
public void pause()

resume

恢复播放。
public void resume()

seek

跳转到视频流指定时间点。
public void seek(int time)
参数说明
参数名
类型
描述
time
int
视频流时间点,单位为秒。
返回值

seek

跳转到视频流指定时间点。
public void seek(float time)
参数说明
参数名
类型
描述
time
float
视频流时间点,单位秒,小数点后精确到3位。

seek

跳转到视频流指定时间点。
public void seek(float timeInSeconds, boolean isAccurateSeek)
参数说明
参数名
类型
描述
timeInSeconds
float
视频流时间点,单位秒,小数点后精确到3位。
isAccurateSeek
boolean
是否精准 Seek。
true: 表示精确 Seek,必须寻找到当前时间点,这个会比较耗时。
false:表示非精准 Seek,也就是寻找前一个I帧。

seekToPdtTime

跳转到视频流指定时间点。
注意:
播放器高级版 11.6 版本开始支持。
public void seekToPdtTime(long pdtTimeMs)
参数说明
参数名
类型
描述
pdtTimeMs
long
视频流 PDT 时间点,单位毫秒。

getCurrentPlaybackTime

获取当前播放时间点,单位秒。
public float getCurrentPlaybackTime()

getBufferDuration

获取缓存的总时长,单位秒。
public float getBufferDuration()

getDuration

获取播放的视频总时长,单位秒。
public float getDuration()

getPlayableDuration


获取
当前可以播放视频时长,单位秒。
public float getPlayableDuration()

getWidth

获取视频宽度。
public int getWidth()

getHeight

获取视频高度。
public int getHeight()

setAutoPlay

设置点播是否 startPlay 后自动开始播放。默认自动播放。
public void setAutoPlay(boolean autoPlay)

setStartTime

设置播放开始时间,单位秒,需要在启动播放前设置。
public void setStartTime(float pos)
参数说明
参数名
类型
描述
pos
float
视频流时间点,单位秒,小数点后精确到3位。

setToken

设置加密 HLS 的 token。设置此值后,播放器自动在 URL 中的文件名之前增加 voddrm.token。
public void setToken(String token)

getEncryptedPlayKey

获取加固加密播放密钥。
public static String getEncryptedPlayKey(final String key)

setLoop

设置是否循环播放,默认非循环播放。
public void setLoop(boolean loop)

isLoop

是否循环播放。
public void setLoop(boolean loop)

addSubtitleSource

添加外挂字幕。
注意:播放器高级版本才支持。
public void addSubtitleSource(@NonNull String url, @NonNull String name, String mimeType)
参数说明
参数名
类型
描述
url
String
字幕地址,支持 Http 链接和本地存储绝对路径。
name
String
字幕的名字。如果添加多个字幕,字幕名称请设置为不同的名字,用于区分与其他添加的字幕,否则可能会导致字幕选择错误
mimeType
String
字幕类型,仅支持 VVT 和 SRT 格式。
VTT 格式:TXVodConstants#VOD_PLAY_MIMETYPE_TEXT_SRT
SRT 格式:TXVodConstants#VOD_PLAY_MIMETYPE_TEXT_VTT

getSubtitleTrackInfo

返回字幕轨道信息列表。
注意:
播放器高级版本才支持。
public List<TXTrackInfo> getSubtitleTrackInfo()
返回值
List<TXTrackInfo>:字幕轨道信息列表。

getAudioTrackInfo

返回音频轨道信息列表。
注意:
播放器高级版本才支持。
public List<TXTrackInfo> getAudioTrackInfo()
返回值
List<TXTrackInfo>:音频轨道信息列表。

selectTrack

选择轨道。
注意:
播放器高级版本才支持。
public void selectTrack(int trackIndex)
参数说明
参数名
类型
描述
trackIndex
int
轨道index,通过 TXTrackInfo#getTrackIndex 获取。

deselectTrack

取消选择轨道。
注意:
播放器高级版本才支持。
public void deselectTrack(int trackIndex)
参数说明
参数名
类型
描述
trackIndex
int
轨道 index,通过 TXTrackInfo#getTrackIndex 获取。

setConfig

设置播放器配置信息,请参考 TXVodPlayConfig
public void setConfig(TXVodPlayConfig config)
参数说明

setPlayerView

设置播放器的视频渲染 TXCloudVideoView,仅在启动播放之前设置有效。
public void setPlayerView(TXCloudVideoView glRootView)
参数说明
参数名
类型
描述
glRootView
TXCloudVideoView
视频渲染 View。

setPlayerView

设置播放器的视频渲染 TextureRenderView,仅在启动播放之前设置有效。
public void setPlayerView(TextureRenderView glRootView)
参数说明
参数名
类型
描述
glRootView
TextureRenderView
视频渲染 View。

setSurface

设置播放器的视频渲染 Surface,仅在启动播放之前设置有效。
public void setSurface(Surface surface)

setStringOption

设置播放器业务参数,参数格式为<String,Object>
public void setStringOption(String key, Object value)

setSubtitleStyle

设置字幕样式信息,支持播放前配置,可以支持在播放后对字幕样式进行更新。
注意:
播放器高级版本才支持。
public void setSubtitleStyle(TXSubtitleRenderModel renderModel)
参数说明
参数名
类型
描述
renderModel
字幕样式配置参数。

setSubtitleView

设置字幕渲染目标对象 View。
注意:
播放器高级版本才支持。
public void setSubtitleView(TXSubtitleView subtitleView)
参数说明
参数名
类型
描述
subtitleView
TXSubtitleView
播放器 SDK 提供的字幕渲染目标对象 View。

setAudioNormalization

设置音量均衡,响度范围:-70~0(LUFS)。
注意:
播放器高级版本才支持。
public void setAudioNormalization(float value)
参数说明
参数名
类型
描述
value
float
可填预设值(相关类或文件:Android:TXVodConstants;iOS:TXVodPlayConfig.h)
关:AUDIO_NORMALIZATION_OFF
开:
AUDIO_NORMALIZATION_STANDARD(标准)
AUDIO_NORMALIZATION_LOW (低)
AUDIO_NORMALIZATION_HIGH(高)
可填自定义数值:从低到高,范围-70 - 0 LUFS。

setAutoMaxBitrate

设置自适应播放可切换的最高码率。
public void setAutoMaxBitrate(int autoMaxBitrate)

enableHardwareDecode

启用或禁用视频硬解码,默认开启硬解码。
public boolean enableHardwareDecode(boolean enable)

snapshot

获取当前视频帧图像。
public void snapshot(TXLivePlayer.ITXSnapshotListener listener)
参数说明
参数名
类型
描述
listener
public interface ITXSnapshotListener {
void onSnapshot(Bitmap bmp);
}
截图回调接口类。

setMirror

设置镜像播放。
public void setMirror(boolean mirror)

setRate

设置点播的播放速率,默认1.0。
public void setRate(float rate)

getBitrateIndex

返回当前播放的码率索引。
public TXVodPlayer(Context context)

getSupportedBitrates

当播放地址为 HSL 时,返回支持的码率(清晰度)列表。
public ArrayList<TXBitrateItem> getSupportedBitrates
返回值
ArrayList<TXBitrateItem>: 码率列表。

setBitrateIndex

设置当前正在播放的码率索引,腾讯云支持多码率HLS分片对齐,保证最佳体验。无缝切换清晰度时,清晰度切换可能需要等待一小段时间。
public void setBitrateIndex(int index) {
参数说明
参数名
类型
描述
index
int
码率索引。
index == -1,表示开启HLS码流自适应。
index > 0 表示手动切换到对应清晰度码率,index 值可以通过接口 TXVodPlayer#getSupportedBitrates 获取。

setRenderMode

设置播放器图像平铺模式。
public void setRenderMode(int mode)
参数说明
参数名
类型
描述
mode
int
图像平铺模式,取值有:
TXVodConstants#RENDER_MODE_FULL_FILL_SCREEN:视频画面全屏铺满,将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不留黑边。
TXVodConstants#RENDER_MODE_ADJUST_RESOLUTION:视频画面自适应屏幕,将图像等比例缩放,缩放后的宽和高都不会超过显示区域,居中显示,可能会留有黑边。

setRenderRotation

设置播放器图像渲染角度。
public void setRenderRotation(int rotation)
参数说明
参数名
类型
描述
context
Context
图像渲染角度,取值有:
TXVodConstants#RENDER_ROTATION_PORTRAIT:常规竖屏。
TXVodConstants#RENDER_ROTATION_LANDSCAPE:右旋90度。

setMute

设置是否静音播放,默认非静音播放。
public void setMute(boolean mute)

setAudioPlayoutVolume

设置音量大小,范围:0 - 100。
public void setAudioPlayoutVolume(int volume)

setRequestAudioFocus

是否自动获取音频焦点,默认自动获取。
可以传入 false,然后业务自己管理音频焦点。
public boolean setRequestAudioFocus(boolean requestFocus)

setVodSubtitleDataListener

设置视频字幕文本数据输出回调。
public void setVodSubtitleDataListener(ITXVodPlayListener.ITXVodSubtitleDataListener listener)
参数说明
参数名
类型
描述
listener
字幕文本数据回调接口。

setVodListener

创建点播播放器实例。
public void setVodListener(ITXVodPlayListener listener)
参数说明
参数名
类型
描述
listener
播放器事件回调接口。

attachTRTC

点播绑定到 TRTC 服务。
public void attachTRTC(Object trtcCloud)

detachTRTC

点播解绑 TRTC 服务。
public void detachTRTC()

publishVideo

开始推送视频流。
public void publishVideo()

unpublishVideo

取消推送视频流。
public void unpublishVideo()

publishAudio

开始推送音频流。
public void publishAudio()

unpublishAudio

取消推送音频流。
public void unpublishAudio()