@protocol TTVideoEngineABRDelegate <NSObject>
ABR 相关回调
- (TTVideoEngineStrategyABRConfig *)videoEngineAbrConfig:(TTVideoEngine *)videoEngine;
获取 ABR 配置回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
返回值
返回 ABR 配置实例
- (void)videoEngineAbrSelectResolution:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution DEPRECATED_MSG_ATTRIBUTE("use videoEngineAbrSelectResolution:resolution:error:");
ABR 当前选择档位回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
| resolution | TTVideoEngineResolutionType | 当前选择档位 |
- (void)videoEngineAbrSelectResolution:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution error:(NSError *)error;
ABR 当前选择档位回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
| resolution | TTVideoEngineResolutionType | 将要切换 abr 选择档位的回调 |
| error | NSError* | 错误信息,error == nil 切换成功 |
- (void)videoEngineAbrWillSelectResolution:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution;
ABR 当前选择档位回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
| resolution | TTVideoEngineResolutionType | 将要切换 abr 选择档位的回调 |
- (void)videoEngineAbrEndSelectResolution:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution DEPRECATED_MSG_ATTRIBUTE("use videoEngineAbrEndSelectResolution:resolution:error:");;
ABR 当前选择档位回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
| resolution | TTVideoEngineResolutionType | 切换 abr 选择档位完成回调 |
- (void)videoEngineAbrEndSelectResolution:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution error:(NSError *)error;
ABR 当前选择档位回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
| resolution | TTVideoEngineResolutionType | 切换 abr 选择档位完成回调 |
| error | NSError* | 错误信息,error == nil 切换成功 |
@protocol TTVideoEngineAutoSelectDelegate <NSObject>
启播选档 相关回调
| 返回 | 名称 |
|---|---|
| void | videoEngineAutoSelectResolution:resolution: |
- (void)videoEngineAutoSelectResolution:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution;
AutoSelect 当前选择档位回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | engine 实例 |
| resolution | TTVideoEngineResolutionType | 当前选择档位 |
@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 loadingProgress:(CGFloat)progress;
视频加载进度回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| progress | CGFloat | 当前加载进度,progress 范围 progress > 0 && progress <1 |
注意
播放器加载视频进度发生变化时 SDK 会触发此回调。您可以根据此回调显示加载的进度。
- (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)videoEngine:(TTVideoEngine *)videoEngine fallbackUrlChanged:(NSString *)url cacheKey:(NSString *)cacheKey index:(NSInteger)index;
主备 URL 切换回调。SDK 切换到备用 URL 回调此方法。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| url | NSString* | 当前备用 URL 地址 |
| cacheKey | NSString* | URL 的缓存 Key |
| index | NSInteger | 当前备用 URL 在 URL 列表中的索引 |
- (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)videoEngine:(TTVideoEngine *)videoEngine subtitleKey:(NSString *)key subtitleHitCacheSize:(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。
- (nullable NSDictionary *)videoEngineGetHLSPrivateEncryptParams:(TTVideoEngine *)videoEngine eKey:(SecKeyRef)eKey;
获取本地加密密钥。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| eKey | SecKeyRef | - |
返回值
返回 HLS 加密密钥:
{
@"key" : "xxx", // NSData 类型
@"ret" : 1 // 0-获取解密key失败(秘钥过期、无权限等),1-不需要解密key解密hls播放秘钥(原始秘钥),2-需要解密key解密hls播放秘钥;
}
- (void)videoEngineUserStopped:(TTVideoEngine *)videoEngine;
播放停止回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
注意
如果您调用了 stop 方法,执行完毕 SDK 触发此回调。
- (void)videoEngineDidFinish:(TTVideoEngine *)videoEngine error:(nullable NSError *)error;
播放结束回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| error | nullable NSError* | 错误信息。
|
- (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* | 错误信息或结束原因:
|
- (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:(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 DEPRECATED_MSG_ATTRIBUTE("use videoEngine:onSubtitleInfoRequestFinish:error");
获取到所有语言字幕信息回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| info | id | 所有语言字幕信息 JSON。 |
| error | NSError* | 请求字幕错误信息。error 为 nil 表示请求成功。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoRequestFinish:(TTVideoEngineSubDecInfoModel *)subtitleInfoModel error:(NSError * _Nullable)error;
获取到所有语言字幕信息回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| subtitleInfoModel | TTVideoEngineSubDecInfoModel* | 所有语言字幕信息 InfoModel。 |
| error | NSError* | 请求字幕错误信息。error 为 nil 表示请求成功。 |
- (void)videoEngine:(TTVideoEngine *)videoEngine onSubSwitchCompleted:(BOOL)success currentSubtitleId:(NSInteger)currentSubtitleId;
字幕语言切换回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象。 |
| success | BOOL | 字幕语言是否成功切换:
|
| currentSubtitleId | NSInteger | 当前字幕 ID。 |
- (NSString *)videoEngine:(TTVideoEngine *)videoEngine generateSubtitleCachKey:(NSString *)subTitleUrl extendInfo:(NSDictionary *)extendInfo;
自定义本地缓存字幕 cache key
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoEngine | TTVideoEngine* | videoEngine 对象 |
| subTitleUrl | NSString* | 请求字幕地址 |
| extendInfo | NSDictionary* | 字幕其它信息 |
返回值
返回本地缓存字幕 cache key
@protocol TTVideoEngineExternDNSParserDelegate<NSObject>
该协议描述使用外部 DNS 解析 Delegate。
| 返回 | 名称 |
|---|---|
| void | setUrl: |
- (void)setUrl:(NSString *)urlString;
提供需要被解析的 URL。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| urlString | NSString* | 需要被解析的 URL。 |
@protocol TTVideoEnginePreRenderDelegate <NSObject>
预渲染策略相关回调。
| 返回 | 名称 |
|---|---|
| TTVideoEngine | createPreRenderEngine: |
| void | videoEngine:willPreRenderSource: |
| void | videoEngineWillPrepare: |
- (TTVideoEngine * _Nullable)createPreRenderEngine:(id<TTVideoEngineMediaSource>)source;
业务层创建预渲染TTVideoEngine 对象。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| source | id<TTVideoEngineMediaSource> | 播放源,详见 TTVideoEngineMediaSource 。 |
- (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 | 当前视频高。 |