TXVodPlayer

最近更新时间:2025-05-21 18:53:02

我的收藏

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
跳转到视频流指定时间点,单位秒。
跳转到视频流指定时间点,单位秒,小数点后精确到3位。支持精准 seek。
获取当前播放位置,单位秒。
duration
获取总时长,单位秒。
获取可播放时长,单位秒。
width
获取视频宽度。
height
获取视频高度。
设置点播是否 startPlay 后自动开始播放,默认自动播放。
设置是否开启硬件加速,默认开启。
设置播放开始时间。
设置 Video 渲染 View,该控件承载视频内容的展示。
移除 Video 渲染 View。
token
加密 HLS 的 token。
获取加固加密播放密钥。
loop
是否循环播放。
添加外挂字幕(播放器高级版本才支持)。
返回字幕轨道信息列表(播放器高级版本才支持)。
返回音频轨道信息列表(播放器高级版本才支持)。
选择轨道(播放器高级版本才支持)。
取消选择轨道(播放器高级版本才支持)。
跳转到视频流指定 PDT(Program Date Time )时间点,可实现视频快进、快退、进度条跳转等功能,目前只支持 HLS 视频格式(播放器高级版 11.6 版本开始支持)。
参数单位毫秒(ms)。

播放器配置接口

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

视频相关接口

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

画中画相关接口

API
描述
是否支持画中画功能。

是否支持无缝切换画中画功能(播放器高级版本才支持)。



设置是否自动启动画中画(播放器高级版本才支持)。
进入画中画。
退出画中画。

音频相关接口

API
描述
setMute:
设置是否静音播放。
设置音量大小,范围:0 - 100。

事件通知接口

API
描述
设置播放器事件回调对象。
设置视频渲染回调对象。

TRTC 播片相关接口

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

接口详情

startVodPlay:

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

startVodPlayWithParams:

通过腾讯云 filedID 启动播放。
10.7 版本开始,需要通过 XLiveBase#setLicence 设置 Licence 后方可成功播放, 否则将播放失败(黑屏),全局仅设置一次即可。
- (int)startVodPlayWithParams:(TXPlayerAuthParams *)params;
参数说明
参数名
类型
描述
params
视频 filedID 及信息。
返回值
0: 播放成功。
非 0: 播放失败。

startPlayDrm:

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

stopPlay

停止播放。
- (int)stopPlay;
返回值
0: 停止成功。
非 0: 停止失败。

isPlaying

是否正在播放。
- (bool)isPlaying;

pause

暂停播放。
- (void)pause;

resume

恢复播放。
- (void)resume;

seek:

跳转到视频流指定时间点。
- (int)seek:(float)time;
参数说明
参数名
类型
描述
time
int
视频流时间点,单位为秒。
返回值
0: 停止成功。
非 0: 停止失败。

seek:accurateSeek:

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

seekToPdtTime:

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

currentPlaybackTime

获取当前播放时间点,单位秒。
- (float)currentPlaybackTime;

duration

获取播放的视频总时长,单位秒。
- (float)duration;

playableDuration

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

width

获取视频宽度。
- (int)width;

height

获取视频高度。
- (int)height;

setupVideoWidget:insertIndex:

设置播放器渲染 View,承载视频内容的展示。

- (void)setupVideoWidget:(NSView *)view insertIndex:(unsigned int)idx;

removeVideoWidget

移除播放器渲染 View。

- (void)removeVideoWidget;

isAutoPlay

设置点播是否 startPlay 后自动开始播放。默认自动播放。
@property BOOL isAutoPlay;

setStartTime:

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

token

设置加密 HLS 的 token。设置此值后,播放器自动在 URL 中的文件名之前增加 voddrm.token。
@property(nonatomic, strong) NSString *token;

getEncryptedPlayKey:

获取加固加密播放密钥。
+ (NSString *)getEncryptedPlayKey:(NSString *)key;

loop

是否循环播放。
@property(nonatomic, assign) BOOL loop;

addSubtitleSource:name:mimeType:

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

getSubtitleTrackInfo

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

getAudioTrackInfo

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

selectTrack:

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

deselectTrack:

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

config

设置播放器配置信息,请参考 TXVodPlayConfig
@property(nonatomic, copy) TXVodPlayConfig *config;

setExtentOptionInfo:

设置播放器业务参数,参数格式为<NSString, id>
- (void)setExtentOptionInfo:(NSDictionary<NSString *, id> *)extInfo;

setSubtitleStyle:

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

setAudioNormalization:

设置音量均衡,响度范围:-70~0(LUFS)。
注意:
播放器高级版本才支持。
- (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:

设置自适应播放可切换的最高码率。
- (void)setAutoMaxBitrate:(NSInteger)autoMaxBitrate;

enableHWAcceleration

启用或禁用视频硬解码,默认开启硬解码。
@property(nonatomic, assign) BOOL enableHWAcceleration;

snapshot:

获取当前视频帧图像。
- (void)snapshot:(void (^)(UIImage *))snapshotCompletionBlock;
参数说明
参数名
类型
描述
snapshotCompletionBlock
void (^)(UIImage *)
截图回调接口类

setMirror:

设置镜像播放。
- (void)setMirror:(BOOL)isMirror;

setRate:

设置点播的播放速率,默认1.0。
- (void)setRate:(float)rate;
参数名
类型
描述
rate
float
播放速率 [0.5, 3.0]。

bitrateIndex

返回当前播放的码率索引。
- (NSInteger)bitrateIndex;

supportedBitrates

当播放地址为 HSL 时,返回支持的码率(清晰度)列表。
- (NSArray<TXBitrateItem *> *)supportedBitrates;
返回值
NSArray<TXBitrateItem *> : 码率列表。

setBitrateIndex:

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

setRenderMode:

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

setRenderRotation:

设置播放器图像渲染角度。
- (void)setRenderRotation:(TX_Enum_Type_HomeOrientation)rotation;
参数说明
参数名
类型
描述
rotation
TX_Enum_Type_HomeOrientation
图像渲染角度,取值有:
HOME_ORIENTATION_RIGHT:Home 键在右侧。
HOME_ORIENTATION_DOWN:Home 键在下方。
HOME_ORIENTATION_LEFT:Home 键在左侧。
HOME_ORIENTATION_UP:Home 键在上方。

setMute:

设置是否静音播放,默认非静音播放。
- (void)setMute:(BOOL)bEnable;

setAudioPlayoutVolume:

设置音量大小,范围:0 - 150,默认为100。
- (void)setAudioPlayoutVolume:(int)volume;

vodDelegate

设置播放器事件回调对象。
@property(nonatomic, weak) id<TXVodPlayListener> vodDelegate;

videoProcessDelegate

设置视频渲染回调对象。
@property(nonatomic, weak) id<TXVideoCustomProcessDelegate> videoProcessDelegate;

attachTRTC

点播绑定到 TRTC 服务。
- (void)attachTRTC:(NSObject *)trtcCloud;

detachTRTC

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

publishVideo

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

unpublishVideo

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

publishAudio

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

unpublishAudio

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

isSupportPictureInPicture

是否支持 Picture In Picture 功能(“画中画”功能)。
+ (BOOL)isSupportPictureInPicture;

isSupportSeamlessPictureInPicture

是否支持无缝切换 Picture In Picture 功能。需要高级版播放器 SDK。
+ (BOOL)isSupportSeamlessPictureInPicture;

setAutoPictureInPictureEnabled:

设置是否自动启动 Picture In Picture (自动启动画中画控制开关)。
- (void)setAutoPictureInPictureEnabled:(BOOL)enabled;
参数说明
参数名
类型
描述
enabled
BOOL
YES:退后台自动进入画中画。
NO:不允许自动进入画中画。

enterPictureInPicture

进入画中画功能(此方法需要在 Prepared 后调用)。
- (void)enterPictureInPicture;

exitPictureInPicture

退出画中画功能。
- (void)exitPictureInPicture;