最近更新时间:2024.04.16 16:39:57
首次发布时间:2023.06.30 16:13:31
@protocol TTVideoEngineDelegate <NSObject>
播放状态相关回调。
- (void)videoEngine:(TTVideoEngine *)videoEngine playbackStateDidChanged:(TTVideoEnginePlaybackState)playbackState;
播放状态改变回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
playbackState | TTVideoEnginePlaybackState | 当前播放状态,详见 TTVideoEnginePlaybackState 。 |
注意
播放状态发生变化时 SDK 会触发此回调。
- (void)videoEngine:(TTVideoEngine *)videoEngine loadStateDidChanged:(TTVideoEngineLoadState)loadState;
加载状态改变回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
loadState | TTVideoEngineLoadState | 当前加载状态,详见 TTVideoEngineLoadState 。 |
注意
内部加载状态发生变化时 SDK 会触发此回调。您可以根据此回调显示或者隐藏 loading 视图。
- (void)videoEngine:(TTVideoEngine *)videoEngine loadStateDidChanged:(TTVideoEngineLoadState)loadState extra:(nullable NSDictionary<NSString *,id> *)extraInfo;
加载状态改变回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
loadState | TTVideoEngineLoadState | 当前加载状态,详见 TTVideoEngineLoadState 。 |
extraInfo | nullable NSDictionary<NSString *, id> * | 额外信息:
|
注意
内部加载状态发生变化时 SDK 会触发此回调。您可以根据此回调显示或者隐藏 loading 视图。
- (void)videoEngine:(TTVideoEngine *)videoEngine fetchedVideoModel:(TTVideoEngineModel *)videoModel;
获取到视频信息回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
videoModel | TTVideoEngineModel * | 服务端返回视频播放的详细信息。 |
注意
使用 Video ID 播放视频时,此回调返回视频信息,包含所有档位清晰度的 urls
信息。
- (void)videoEngine:(TTVideoEngine *)videoEngine usingUrlInfos:(NSArray<TTVideoEngineURLInfo *> *)urlInfos;
获取播放信息数组的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
urlInfos | NSArray<TTVideoEngineURLInfo *> * | 视频所有档位分辨率的 URL 信息。 |
注意
播放 Vid 视频源时,此回调返回视频所有档位分辨率。
- (void)videoEngineReadyToDisPlay:(TTVideoEngine *)videoEngine;
显示视频首帧回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
注意
您可以根据该回调隐藏封面图,显示视频画面。
- (void)videoEnginePrepared:(TTVideoEngine *)videoEngine;
播放器各模块准备完成、可以播放回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
- (void)videoEngineReadyToPlay:(TTVideoEngine *)videoEngine;
视频加载完成、开始播放回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
注意
该回调必须调用 [videoEngine play]
后才会触发。
- (void)videoEngineAudioRendered:(TTVideoEngine *)videoEngine;
音频渲染完成回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine retryForError:(NSError *)error;
SDK 内部发生错误、开启重试的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
error | NSError * | 内部错误信息。 |
注意
此回调表示 SDK 内部发生错误,即将重试,而非最终播放失败。
- (void)videoEngineStalledExcludeSeek:(TTVideoEngine *)videoEngine;
非 seek 操作引起的卡顿回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine mdlKey:(NSString *)key hitCacheSze:(NSInteger)cacheSize;
预加载命中回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
key | NSString * | 视频缓存的唯一标识符。 |
cacheSize | NSInteger | 命中缓存视频的大小。 |
注意
如果您使用预加载功能,通过 cacheSize
是否大于 0 可以判断当此播放是否命中了预加载。
- (void)videoEngineDeviceOpened:(TTVideoEngine *)videoEngine streamType:(TTVideoEngineStreamType)streamType;
音视频设备打开的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
streamType | TTVideoEngineStreamType | 音频流类型,详见 TTVideoEngineStreamType 。 |
- (void)videoEngineBeforeViewRemove:(TTVideoEngine *)videoEngine;
当前 playview 从父 view 移除前的回调。如果 playview 被移除,页面将展示黑屏。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
- (nullable NSString *)videoEngineGetEncryptedLocalTime:(TTVideoEngine *)videoEngine;
返回本地加密时间戳回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
返回值
该回调用于私有 DRM 加密。您需要通过返回值将本地加密时间戳传给 SDK。
- (void)videoEngineUserStopped:(TTVideoEngine *)videoEngine;
播放停止回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
注意
如果您调用了 stop
方法,执行完毕 SDK 触发此回调。
- (void)videoEngineDidFinish:(TTVideoEngine *)videoEngine error:(nullable NSError *)error;
播放结束回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
error | nullable NSError * | 错误信息。 * error 为空表示正常结束播放。* error 不为空表示播放失败,error 对应具体的错误信息。 |
- (void)videoEngineDidFinish:(TTVideoEngine *)videoEngine videoStatusException:(NSInteger)status;
异常播放结束回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
status | NSInteger | Video ID 播放获取播放信息异常状态码。 |
- (void)videoEngineCloseAysncFinish:(TTVideoEngine *)videoEngine;
播放器实例销毁回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
注意
如果您调用了 closeAysnc
, 执行完毕 SDK 触发此回调。
@protocol TTVideoEngineDownloaderDelegate <NSObject>
下载相关回调。
- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader downloadTask:(TTVideoEngineDownloadTask *)downloadTask didCompleteWithError:(nullable NSError *)error;
下载任务结束回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
downloader | TTVideoEngineDownloader * | 下载任务管理器。 |
downloadTask | TTVideoEngineDownloadTask * | 当前下载任务。 |
error | nullable NSError * | 错误信息或结束原因: * error 为 nil 表示下载成功。* 否则下载任务失败,通过 error 查看错误信息。 |
- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader downloadTask:(TTVideoEngineDownloadTask *)downloadTask writeData:(int64_t)bytesWritten timeInterval:(double)timeMS;
下载任务进度回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
downloader | TTVideoEngineDownloader * | 下载任务管理器。 |
downloadTask | TTVideoEngineDownloadTask * | 当前下载任务。 |
bytesWritten | int64_t | 在 timeMS 时间间隔内下载的字节数,可用于计算下载速度。 |
timeMS | double | 时间间隔。 |
注意
播放 HLS 视频时,bytesWritten
值可能不准。如果要获取下载进度,建议直接通过 TTVideoEngineDownloadTask.progress
属性获取。
- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader downloadTask:(TTVideoEngineDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes;
下载任务将要开始或恢复回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
downloader | TTVideoEngineDownloader * | 下载任务管理器。 |
downloadTask | TTVideoEngineDownloadTask * | 当前下载任务。 |
fileOffset | int64_t | 开始或恢复位置。 |
expectedTotalBytes | int64_t | 总大小,单位为 byte。注意:播放 HLS 视频时,expectedTotalBytes 值可能不准。 |
- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader downloadTask:(TTVideoEngineDownloadTask *)downloadTask stateChanged:(TTVideoEngineDownloadState)downloadState;
下载任务状态改变回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
downloader | TTVideoEngineDownloader * | 下载任务管理器。 |
downloadTask | TTVideoEngineDownloadTask * | 当前下载任务。 |
downloadState | TTVideoEngineDownloadState | 当前下载状态,详见 TTVideoEngineDownloadState 。 |
@protocol TTVideoEngineSubtitleDelegate <NSObject>
字幕相关回调。
返回 | 名称 |
---|---|
void | videoEngine:onSubtitleInfoCallBack:pts: |
void | videoEngine:onSubtitleInfoCallBack: |
void | videoEngine:onSubtitleInfoRequested:error: |
void | videoEngine:onSubSwitchCompleted:currentSubtitleId: |
- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoCallBack:(NSString *)content pts:(NSUInteger)pts;
获取到单段字幕信息的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
content | NSString * | 该段字幕的内容。 |
pts | NSUInteger | 该段字幕对应的时间戳,单位为毫秒。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoCallBack:(TTVideoEngineSubInfo *)subInfo;
获取到单段字幕信息的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
subInfo | TTVideoEngineSubInfo * | 单段字幕信息,详见 TTVideoEngineSubInfo 。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoRequested:(id _Nullable)info error:(NSError * _Nullable)error;
获取到所有语言字幕信息回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
info | id | 所有语言字幕信息 JSON。 |
error | NSError * | 请求字幕错误信息。error 为 nil 表示请求成功。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine onSubSwitchCompleted:(BOOL)success currentSubtitleId:(NSInteger)currentSubtitleId;
字幕语言切换回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
success | BOOL | 字幕语言是否成功切换:
|
currentSubtitleId | NSInteger | 当前字幕 ID。 |
@protocol TTVideoEngineExternDNSParserDelegate<NSObject>
该协议描述使用外部 DNS 解析 Delegate。
返回 | 名称 |
---|---|
void | setUrl: |
- (void)setUrl:(NSString *)urlString;
提供需要被解析的 URL。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
urlString | NSString * | 需要被解析的 URL。 |
@protocol TTVideoEnginePreRenderDelegate <NSObject>
预渲染策略相关回调。
返回 | 名称 |
---|---|
void | videoEngine:willPreRenderSource: |
void | videoEngineWillPrepare: |
- (void)videoEngine:(TTVideoEngine *)videoEngine willPreRenderSource:(id<TTVideoEngineMediaSource>)source;
预渲染 TTVideoEngine
实例将要渲染回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
source | id<TTVideoEngineMediaSource> | - |
注意
此回调的触发时机在 [videoEngine setVideoEngineVideoSource:]
设置播放源之前。您可在此回调中设置字幕。
- (void)videoEngineWillPrepare:(TTVideoEngine *)videoEngine;
预渲染 TTVideoEngine
实例将要播放回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
注意
此回调的触发时机在 [videoEngine prepareToPlay]
播放之前,您可在此回调中设置大部分播放参数,例如显示模式、填充模式、起播时间、超分等。
@protocol TTVideoEngineResolutionDelegate <NSObject>
分辨率相关回调。
返回 | 名称 |
---|---|
void | videoBitrateDidChange:resolution:bitrate: |
void | videoSizeDidChange:videoWidth:videoHeight: |
- (void)videoBitrateDidChange:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution bitrate:(NSInteger)bitrate;
视频码率发生变化回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
resolution | TTVideoEngineResolutionType | 当前视频分辨率,详见 TTVideoEngineResolutionType 。 |
bitrate | NSInteger | 当前视频码率。 |
- (void)videoSizeDidChange:(TTVideoEngine *)videoEngine videoWidth:(NSInteger)videoWidth videoHeight:(NSInteger)videoHeight;
视频分辨率发生变化回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
videoEngine | TTVideoEngine * | videoEngine 对象。 |
videoWidth | NSInteger | 当前视频宽。 |
videoHeight | NSInteger | 当前视频高。 |