请参见 TXVodPlayer。
主要负责从指定的点播流地址拉取音视频数据,并进行解码和本地渲染播放。
播放器包含如下能力:
API | 描述 |
---|---|
config | 点播配置,配置信息请参见 TXVodPlayConfig。 |
isAutoPlay | startPlay 后是否立即播放,默认 YES。 |
token | 加密 HLS 的 token。设置此值后,播放器自动在 URL 中的文件名之前增加 voddrm.token.TOKEN TextureView 。 |
loop | 是否循环播放 SurfaceView。 |
enableHWAcceleration | 视频渲染回调。(仅硬解支持) |
setExtentOptionInfo | 设置播放器业务参数,参数格式为<nsstring *,="" id=""> |
API | 描述 |
---|---|
startPlay | 播放 HTTP URL 形式地址。 |
startPlayDrm: | 启动一个标准Fairplay drm播放。 |
startPlayWithParams | 以 fileId 形式播放。 |
stopPlay | 停止播放。 |
isPlaying | 是否正在播放。 |
pause | 暂停播放,停止获取流数据,保留最后一帧画面。 |
resume | 恢复播放,重新获取流数据。 |
seek | 跳转到视频流指定时间点,单位秒。 |
currentPlaybackTime | 获取当前播放位置,单位秒。 |
duration | 获取总时长,单位秒。 |
playableDuration | 获取可播放时长,单位秒。 |
width | 获取视频宽度。 |
height | 获取视频高度。 |
setStartTime | 设置播放开始时间。 |
setupVideoWidget:insertIndex: | 创建Video渲染View,该控件承载着视频内容的展示。 |
removeVideoWidget | 移除Video渲染View。 |
API | 描述 |
---|---|
snapshot | 获取当前视频帧图像。 注意:由于获取当前帧图像是比较耗时的操作,所以截图会通过异步回调出来。 |
setMirror | 设置镜像。 |
setRate | 设置点播的播放速率,默认1.0。 |
bitrateIndex | 返回当前播放的码率索引。 |
setBitrateIndex | 设置当前正在播放的码率索引,无缝切换清晰度。 清晰度切换可能需要等待一小段时间。 |
supportedBitrates | 当播放地址为 master playlist,返回支持的码率(清晰度)。 |
setRenderMode | 设置 图像平铺模式。 |
setRenderRotation | 设置 图像渲染角度。 |
enterPictureInPicture | 进入画中画功能。 |
exitPictureInPicture | 退出画中画功能。 |
API | 描述 |
---|---|
setMute | 设置是否静音播放。 |
setAudioPlayoutVolume | 设置音量大小,范围:0 - 100。 |
API | 描述 |
---|---|
delegate | 事件回调,建议使用 vodDelegate。 |
vodDelegate | 设置播放器的回调。 |
videoProcessDelegate | 视频渲染回调(仅硬解支持)。 |
通过以下接口,可以把点播播放器的音视频流通过 TRTC 进行推送,更多 TRTC 服务请参见 TRTC 产品概述。
API | 描述 |
---|---|
attachTRTC | 点播绑定到 TRTC 服务。 |
detachTRTC | 点播解绑 TRTC 服务。 |
publishVideo | 开始推送视频流。 |
unpublishVideo | 取消推送视频流。 |
publishAudio | 开始推送音频流。 |
unpublishAudio | 取消推送音频流。 |
API | 描述 |
---|---|
getEncryptedPlayKey | 获取加固加密播放密钥。 |
isSupportPictureInPicture | 是否支持 Picture In Picture功能(‘画中画’功能)。 |
腾讯云点播回调通知。
API | 描述 |
---|---|
onPlayEvent:event:withParam: | 点播播放事件通知,请参见 播放事件列表、事件参数。 |
onNetStatus:withParam: | 点播播放器 网络状态通知。 |
onPlayer:pictureInPictureStateDidChange:withParam: | 画中画状态回调。 |
onPlayer:pictureInPictureErrorDidOccur:withParam: | 画中画错误状态回调。 |
点播播放器配置类。
API | 描述 |
---|---|
connectRetryCount | 设置播放器重连次数。 |
connectRetryInterval | 设置播放器重连间隔,单位秒。 |
timeout | 设置播放器连接超时时间,单位秒。 |
cacheFolderPath | 此接口已废弃,推荐使用TXPlayerGlobalSetting##setCacheFolderPath。 设置点播缓存目录,点播 MP4、HLS 有效。 |
maxCacheItems | 此接口已废弃,推荐使用TXPlayerGlobalSetting#setMaxCacheSizeMB。 设置缓存文件个数。 |
playerType | 设置播放器类型。 |
headers | 设置自定义 HTTP headers。 |
enableAccurateSeek | 设置是否精确 seek,默认 true。 |
autoRotate | 播放 MP4 文件时,若设为 YES 则根据文件中的旋转角度自动旋转。 旋转角度可在 PLAY_EVT_CHANGE_ROTATION 事件中获得。默认 YES。 |
smoothSwitchBitrate | 平滑切换多码率 HLS,默认 false。 |
progressInterval | 设置进度回调间隔,单位毫秒。 |
maxBufferSize | 最大预加载大小,单位 MB。 |
maxPreloadSize | 设置预加载最大缓冲大小,单位:MB。 |
firstStartPlayBufferTime | 设置首缓需要加载的数据时长,单位ms,默认值为100ms。 |
nextStartPlayBufferTime | 缓冲时(缓冲数据不够引起的二次缓冲,或者seek引起的拖动缓冲)最少要缓存多长的数据才能结束缓冲,单位ms,默认值为250ms。 |
overlayKey | 设置 HLS 安全加固加解密 key。 |
overlayIv | 设置 HLS 安全加固加解密 Iv。 |
extInfoMap | 设置拓展信息。 |
preferredResolution | 播放 HLS 有多条码流时,根据设定的 preferredResolution 选最优的码流进行起播 *,preferredResolution 是宽高的乘积(width * height), 启播前设置才有效。 |
enableRenderProcess | 是否允许加载后渲染后处理服务(如超分插件服务),默认开启。 |
playerPixelFormatType | 视频渲染对象回调的视频格式。 |
keepLastFrameWhenStop | stopPlay 的时候是否保留最后一帧画面,默认值为 NO。 |
mediaType | 设置媒资类型。 |
点播播放器全局配置类
API | 描述 |
---|---|
setCacheFolderPath | 设置播放引擎的cache目录。设置后,预下载,播放器等会优先从此目录读取和存储 |
setMaxCacheSize | 设置播放引擎的最大缓存大小。设置后会根据设定值自动清理Cache目录的文件。单位MB。 |
点播播放器预下载接口类
API | 描述 |
---|---|
sharedManager | 获取 TXVodPreloadManager 实例对象,单例模式。 |
startPreload | 启动预下载前,请先设置好播放引擎的缓存目录TXPlayerGlobalSetting#setCacheFolderPath 和缓存大小TXPlayerGlobalSetting#setMaxCacheSize。 |
stopPreload | 停止预下载 |
API | 描述 |
---|---|
onComplete:url: | 下载完成回调。 |
onError:url:error: | 下载错误回调。 |
点播播放器视频下载接口类
API | 描述 |
---|---|
auth | fileid信息 |
quality | 下载清晰度,默认原画 |
token | 如地址有加密,请填写token |
templateName | 清晰度模板 |
fileId | 文件Id |
pSign | 签名信息 |
appId | 应用 appId。必填 |
userName | 账户名称 |
overlayKey | HLS EXT-X-KEY 加解密参数 |
overlayIv | 加解密参数 overlayIv |
API | 描述 |
---|---|
isDownloadFinished | 是否下载完成 |
dataSource | fileid下载对象(可选) |
url | 下载地址 |
userName | 账户名称 |
duration | 时长 |
playableDuration | 可播放时长 |
size | 文件总大小,单位:byte |
downloadSize | 已下载大小,单位:byte |
segments | 分段总数 |
downloadSegments | 已下载的分段数 |
progress | 进度 |
playPath | 播放路径,可传给TXVodPlayer播放 |
speed | 下载速度,byte每秒 |
downloadState | 下载状态 |
API | 描述 |
---|---|
shareInstance | 获取 TXVodDownloadManager 实例对象,单例模式。 |
setDownloadPath | 设置下载根目录。 |
headers | 设置下载 HTTP 头。 |
delegate | 设置下载回调方法,下载前必须设好。 |
startDownloadUrl | 以 URL 方式开始下载。 |
startDownload | 以 FileID 方式开始下载。 |
stopDownload | 停止下载,ITXVodDownloadListener.onDownloadStop 回调时停止成功。 |
deleteDownloadFile | 删除下载文件。 |
deleteDownloadMediaInfo | 删除下载信息。 |
getDownloadMediaInfoList | 获取所有用户的下载列表信息。 |
getDownloadMediaInfo | 获取下载信息。 |
getOverlayKeyIv | 获取HLS EXT-X-KEY。 |
genRandomHexStringForHls | 获取加密随机数。 |
encryptHexStringHls: | 加密。 |
API | 描述 |
---|---|
onDownloadStart | 下载开始。 |
onDownloadProgress | 下载进度更新。 |
onDownloadStop | 下载停止。 |
onDownloadFinish | 下载结束。 |
onDownloadError | 下载过程中遇到错误。 |
hlsKeyVerify | 下载 HLS,遇到加密的文件,将解密 Key 给外部校验。 |
下载错误码
枚举值 | 含义说明 |
---|---|
TXDownloadSuccess | 下载成功 |
TXDownloadAuthFaild | fileid鉴权失败 |
TXDownloadNoFile | 无此清晰度文件 |
TXDownloadFormatError | 格式不支持 |
TXDownloadDisconnet | 网络断开 |
TXDownloadHlsKeyError | 获取HLS解密key失败 |
TXDownloadPathError | 下载目录访问失败 |
下载状态
枚举值 | 含义说明 |
---|---|
TXVodDownloadMediaInfoStateInit | 下载初始态 |
TXVodDownloadMediaInfoStateStart | 下载开始 |
TXVodDownloadMediaInfoStateStop | 下载停止 |
TXVodDownloadMediaInfoStateError | 下载出错 |
TXVodDownloadMediaInfoStateFinish | 下载完成 |
下载视频的清晰度
枚举值 | 含义说明 |
---|---|
TXVodQualityOD | 原画 |
TXVodQualityFLU | 流畅 |
TXVodQualitySD | 标清 |
TXVodQualityHD | 高清 |
TXVodQualityFHD | 全高清 |
TXVodQuality2K | 2K |
TXVodQuality4K | 4K |
通过fileId播放加密视频配置。
API | 描述 |
---|---|
appId | 应用 appId。 |
fileId | 文件id。 |
timeout | 加密链接超时时间戳。 |
exper | 试看时长。 |
us | 唯一标识请求。 |
sign | 防盗链签名。 |
https | 是否用https请求。 |
HLS多码率信息。
API | 描述 |
---|---|
index | m3u8 文件中的序号。 |
width | 此流的视频宽度。 |
height | 此流的视频高度。 |
bitrate | 此流的视频码率。 |
雪碧图解析工具。
API | 描述 |
---|---|
setVTTUrl | 设置雪碧图地址。 |
getThumbnail | 获取缩略图。 |
点播Drm构造器。
API | 描述 |
---|---|
certificateUrl | 证书提供商 URL。 |
keyLicenseUrl | 解密 key URL。 |
playUrl | 播放链接。 |
code | 事件定义 | 含义说明 |
---|---|---|
2004 | PLAY_EVT_PLAY_BEGIN | 视频播放开始(若有转圈圈效果,此时将停止)。 |
2005 | PLAY_EVT_PLAY_PROGRESS | 视频播放进度,会通知当前播放进度、加载进度和总体时长。 |
2007 | PLAY_EVT_PLAY_LOADING | 视频播放 loading,如果能够恢复,之后会有 LOADING_END 事件。 |
2014 | PLAY_EVT_VOD_LOADING_END | 视频播放 loading 结束,视频继续播放。 |
2006 | PLAY_EVT_PLAY_END | 视频播放结束。 |
2013 | PLAY_EVT_VOD_PLAY_PREPARED | 播放器已准备完成,可以播放。 |
2003 | PLAY_EVT_RCV_FIRST_I_FRAME | 网络接收到首个可渲染的视频数据包(IDR)。 |
2009 | PLAY_EVT_CHANGE_RESOLUTION | 视频分辨率改变。 |
2011 | PLAY_EVT_CHANGE_ROTATION | MP4 视频旋转角度。 |
code | 事件定义 | 含义说明 |
---|---|---|
-2301 | PLAY_ERR_NET_DISCONNECT | 网络断连,且经多次重连亦不能恢复,更多重试请自行重启播放。 |
-2305 | PLAY_ERR_HLS_KEY | HLS 解密 key 获取失败。 |
2101 | PLAY_WARNING_VIDEO_DECODE_FAIL | 当前视频帧解码失败。 |
2102 | PLAY_WARNING_AUDIO_DECODE_FAIL | 当前音频帧解码失败。 |
2103 | PLAY_WARNING_RECONNECT | 网络断连, 已启动自动重连(重连超过三次就直接抛送 PLAY_ERR_NET_DISCONNECT)。 |
2106 | PLAY_WARNING_HW_ACCELERATION_FAIL | 硬解启动失败,采用软解。 |
-2304 | PLAY_ERR_HEVC_DECODE_FAIL | H265 解码失败。 |
-2303 | PLAY_ERR_FILE_NOT_FOUND | 播放的文件不存在。 |
枚举值 | 含义 |
---|---|
VOD_PLAY_EVT_RCV_FIRST_I_FRAME | 播放事件: 成功接受到第一个视频帧 |
VOD_PLAY_EVT_RCV_FIRST_AUDIO_FRAME | 播放事件: 成功接受到第一个音频帧 |
VOD_PLAY_EVT_PLAY_BEGIN | 播放事件: 播放已经开始 |
VOD_PLAY_EVT_PLAY_PROGRESS | 播放事件: 播放进度更新,点播播放器(VodPlayer)专用 |
VOD_PLAY_EVT_PLAY_END | 播放事件: 播放已经结束 |
VOD_PLAY_EVT_PLAY_LOADING | 播放事件: 数据缓冲中 |
VOD_PLAY_EVT_START_VIDEO_DECODER | 播放事件: 视频解码器已经启动 |
VOD_PLAY_EVT_CHANGE_RESOLUTION | 播放事件: 视频分辨率发生变化 |
VOD_PLAY_EVT_GET_PLAYINFO_SUCC | 播放事件: 成功获取到点播文件的信息,点播播放器(VodPlayer)专用 |
VOD_PLAY_EVT_CHANGE_ROTATION | 播放事件: MP4 视频的旋转角度发生变化,点播播放器(VodPlayer)专用 |
VOD_PLAY_EVT_VOD_PLAY_PREPARED | 播放事件: 视频加载完毕,点播播放器(VodPlayer)专用 |
VOD_PLAY_EVT_VOD_LOADING_END | 播放事件: 视频缓冲结束,点播播放器(VodPlayer)专用 |
VOD_PLAY_EVT_STREAM_SWITCH_SUCC | 播放事件: 已经成功完成切流(在不同清晰度的视频流之间进行切换) |
VOD_PLAY_EVT_VOD_PLAY_TCP_CONNECT_SUCC | TCP 连接成功 |
VOD_PLAY_EVT_VOD_PLAY_FIRST_VIDEO_PACKET | 收到首帧数据 |
VOD_PLAY_EVT_VOD_PLAY_SEEK_COMPLETE | 视频播放 Seek 完成 |
VOD_PLAY_EVT_AUDIO_SESSION_INTERRUPT | 播放事件: Audio Session 被其他 App 中断(仅适用于 iOS 平台) |
VOD_PLAY_ERR_NET_DISCONNECT | 直播错误: 网络连接断开(已经经过三次重试并且未能重连成功)。 |
VOD_PLAY_ERR_FILE_NOT_FOUND | 点播错误: 播放文件不存在 |
VOD_PLAY_ERR_HLS_KEY | 点播错误: HLS 解码 KEY 获取失败 |
VOD_PLAY_ERR_GET_PLAYINFO_FAIL | 点播错误: 获取点播文件的文件信息失败 |
枚举值 | 含义 |
---|---|
TX_VOD_PLAYER_PIP_ERROR_TYPE_NONE | 无错误 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_DEVICE_NOT_SUPPORT | 设备或系统版本不支持(iPad iOS9+ 才支持PIP) |
TX_VOD_PLAYER_PIP_ERROR_TYPE_PLAYER_NOT_SUPPORT | 播放器不支持 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_VIDEO_NOT_SUPPORT | 视频不支持 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_PIP_IS_NOT_POSSIBLE | PIP 控制器不可用 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_ERROR_FROM_SYSTEM | PIP 控制器报错 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_PLAYER_NOT_EXIST | 播放器对象不存在 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_PIP_IS_RUNNING | PIP 功能已经运行 |
TX_VOD_PLAYER_PIP_ERROR_TYPE_PIP_NOT_RUNNING | PIP 功能没有启动 |
枚举值 | 含义 |
---|---|
TX_VOD_PLAYER_PIP_STATE_UNDEFINED | 未设置状态 |
TX_VOD_PLAYER_PIP_STATE_WILL_START | 画中画即将开始 |
TX_VOD_PLAYER_PIP_STATE_DID_START | 画中画已经开始 |
TX_VOD_PLAYER_PIP_STATE_WILL_STOP | 画中画即将结束 |
TX_VOD_PLAYER_PIP_STATE_DID_STOP | 画中画已经结束 |
TX_VOD_PLAYER_PIP_STATE_RESTORE_UI | 重置 UI |
本页内容是否解决了您的问题?