You need to enable JavaScript to run this app.
导航

回调

最近更新时间2024.04.16 16:39:57

首次发布时间2023.06.30 16:13:31

TTVideoEngineDelegate
@protocol TTVideoEngineDelegate <NSObject>

播放状态相关回调。

成员函数

返回名称
voidvideoEngine:playbackStateDidChanged:
voidvideoEngine:loadStateDidChanged:
voidvideoEngine:loadStateDidChanged:extra:
voidvideoEngine:fetchedVideoModel:
voidvideoEngine:usingUrlInfos:
voidvideoEngineReadyToDisPlay:
voidvideoEnginePrepared:
voidvideoEngineReadyToPlay:
voidvideoEngineAudioRendered:
voidvideoEngine:retryForError:
voidvideoEngineStalledExcludeSeek:
voidvideoEngine:mdlKey:hitCacheSze:
voidvideoEngineDeviceOpened:streamType:
voidvideoEngineBeforeViewRemove:
nullable NSString *videoEngineGetEncryptedLocalTime:
voidvideoEngineUserStopped:
voidvideoEngineDidFinish:error:
voidvideoEngineDidFinish:videoStatusException:
voidvideoEngineCloseAysncFinish:

函数说明

videoEngine:playbackStateDidChanged:

- (void)videoEngine:(TTVideoEngine *)videoEngine playbackStateDidChanged:(TTVideoEnginePlaybackState)playbackState;

播放状态改变回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
playbackStateTTVideoEnginePlaybackState当前播放状态,详见 TTVideoEnginePlaybackState

注意

播放状态发生变化时 SDK 会触发此回调。

videoEngine:loadStateDidChanged:

- (void)videoEngine:(TTVideoEngine *)videoEngine loadStateDidChanged:(TTVideoEngineLoadState)loadState;

加载状态改变回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
loadStateTTVideoEngineLoadState当前加载状态,详见 TTVideoEngineLoadState

注意

内部加载状态发生变化时 SDK 会触发此回调。您可以根据此回调显示或者隐藏 loading 视图。

videoEngine:loadStateDidChanged:extra:

- (void)videoEngine:(TTVideoEngine *)videoEngine
loadStateDidChanged:(TTVideoEngineLoadState)loadState
              extra:(nullable NSDictionary<NSString *,id> *)extraInfo;

加载状态改变回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
loadStateTTVideoEngineLoadState当前加载状态,详见 TTVideoEngineLoadState
extraInfonullable NSDictionary<NSString *, id> *额外信息:
  • TTVideoEngineBufferStartAction:@(TTVideoEngineStallActionNone): 导致出现卡顿的动作,详见 TTVideoEngineStallAction
  • TTVideoEngineBufferStartReason:@(TTVideoEngineStallReasonNetwork): 导致出现卡顿的具体原因,详见 TTVideoEngineStallReason

注意

内部加载状态发生变化时 SDK 会触发此回调。您可以根据此回调显示或者隐藏 loading 视图。

videoEngine:fetchedVideoModel:

- (void)videoEngine:(TTVideoEngine *)videoEngine fetchedVideoModel:(TTVideoEngineModel *)videoModel;

获取到视频信息回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
videoModelTTVideoEngineModel *服务端返回视频播放的详细信息。

注意

使用 Video ID 播放视频时,此回调返回视频信息,包含所有档位清晰度的 urls 信息。

videoEngine:usingUrlInfos:

- (void)videoEngine:(TTVideoEngine *)videoEngine usingUrlInfos:(NSArray<TTVideoEngineURLInfo *> *)urlInfos;

获取播放信息数组的回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
urlInfosNSArray<TTVideoEngineURLInfo *> *视频所有档位分辨率的 URL 信息。

注意

播放 Vid 视频源时,此回调返回视频所有档位分辨率。

videoEngineReadyToDisPlay:

- (void)videoEngineReadyToDisPlay:(TTVideoEngine *)videoEngine;

显示视频首帧回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

注意

您可以根据该回调隐藏封面图,显示视频画面。

videoEnginePrepared:

- (void)videoEnginePrepared:(TTVideoEngine *)videoEngine;

播放器各模块准备完成、可以播放回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

videoEngineReadyToPlay:

- (void)videoEngineReadyToPlay:(TTVideoEngine *)videoEngine;

视频加载完成、开始播放回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

注意

该回调必须调用 [videoEngine play] 后才会触发。

videoEngineAudioRendered:

- (void)videoEngineAudioRendered:(TTVideoEngine *)videoEngine;

音频渲染完成回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

videoEngine:retryForError:

- (void)videoEngine:(TTVideoEngine *)videoEngine retryForError:(NSError *)error;

SDK 内部发生错误、开启重试的回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
errorNSError *内部错误信息。

注意

此回调表示 SDK 内部发生错误,即将重试,而非最终播放失败。

videoEngineStalledExcludeSeek:

- (void)videoEngineStalledExcludeSeek:(TTVideoEngine *)videoEngine;

非 seek 操作引起的卡顿回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

videoEngine:mdlKey:hitCacheSze:

- (void)videoEngine:(TTVideoEngine *)videoEngine mdlKey:(NSString *)key hitCacheSze:(NSInteger)cacheSize;

预加载命中回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
keyNSString *视频缓存的唯一标识符。
cacheSizeNSInteger命中缓存视频的大小。

注意

如果您使用预加载功能,通过 cacheSize 是否大于 0 可以判断当此播放是否命中了预加载。

videoEngineDeviceOpened:streamType:

- (void)videoEngineDeviceOpened:(TTVideoEngine *)videoEngine streamType:(TTVideoEngineStreamType)streamType;

音视频设备打开的回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
streamTypeTTVideoEngineStreamType音频流类型,详见 TTVideoEngineStreamType

videoEngineBeforeViewRemove:

- (void)videoEngineBeforeViewRemove:(TTVideoEngine *)videoEngine;

当前 playview 从父 view 移除前的回调。如果 playview 被移除,页面将展示黑屏。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

videoEngineGetEncryptedLocalTime:

- (nullable NSString *)videoEngineGetEncryptedLocalTime:(TTVideoEngine *)videoEngine;

返回本地加密时间戳回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

返回值

该回调用于私有 DRM 加密。您需要通过返回值将本地加密时间戳传给 SDK。

videoEngineUserStopped:

- (void)videoEngineUserStopped:(TTVideoEngine *)videoEngine;

播放停止回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

注意

如果您调用了 stop 方法,执行完毕 SDK 触发此回调。

videoEngineDidFinish:error:

- (void)videoEngineDidFinish:(TTVideoEngine *)videoEngine error:(nullable NSError *)error;

播放结束回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
errornullable NSError *错误信息。
* error 为空表示正常结束播放。
* error 不为空表示播放失败,error 对应具体的错误信息。

videoEngineDidFinish:videoStatusException:

- (void)videoEngineDidFinish:(TTVideoEngine *)videoEngine videoStatusException:(NSInteger)status;

异常播放结束回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
statusNSIntegerVideo ID 播放获取播放信息异常状态码。

videoEngineCloseAysncFinish:

- (void)videoEngineCloseAysncFinish:(TTVideoEngine *)videoEngine;

播放器实例销毁回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

注意

如果您调用了 closeAysnc, 执行完毕 SDK 触发此回调。

TTVideoEngineDownloaderDelegate
@protocol TTVideoEngineDownloaderDelegate <NSObject>

下载相关回调。

成员函数

返回名称
voidVideoEngineDownloader:downloadTask:didCompleteWithError:
voidVideoEngineDownloader:downloadTask:writeData:timeInterval:
voidVideoEngineDownloader:downloadTask:didResumeAtOffset:expectedTotalBytes:
voidVideoEngineDownloader:downloadTask:stateChanged:

函数说明

VideoEngineDownloader:downloadTask:didCompleteWithError:

- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader
                 downloadTask:(TTVideoEngineDownloadTask *)downloadTask
         didCompleteWithError:(nullable NSError *)error;

下载任务结束回调。

传入参数

参数名类型说明
downloaderTTVideoEngineDownloader *下载任务管理器。
downloadTaskTTVideoEngineDownloadTask *当前下载任务。
errornullable NSError *错误信息或结束原因:
* errornil 表示下载成功。
* 否则下载任务失败,通过 error 查看错误信息。

VideoEngineDownloader:downloadTask:writeData:timeInterval:

- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader
                 downloadTask:(TTVideoEngineDownloadTask *)downloadTask
                    writeData:(int64_t)bytesWritten
                 timeInterval:(double)timeMS;

下载任务进度回调。

传入参数

参数名类型说明
downloaderTTVideoEngineDownloader *下载任务管理器。
downloadTaskTTVideoEngineDownloadTask *当前下载任务。
bytesWrittenint64_ttimeMS 时间间隔内下载的字节数,可用于计算下载速度。
timeMSdouble时间间隔。

注意

播放 HLS 视频时,bytesWritten 值可能不准。如果要获取下载进度,建议直接通过 TTVideoEngineDownloadTask.progress 属性获取。

VideoEngineDownloader:downloadTask:didResumeAtOffset:expectedTotalBytes:

- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader
                 downloadTask:(TTVideoEngineDownloadTask *)downloadTask
            didResumeAtOffset:(int64_t)fileOffset
           expectedTotalBytes:(int64_t)expectedTotalBytes;

下载任务将要开始或恢复回调。

传入参数

参数名类型说明
downloaderTTVideoEngineDownloader *下载任务管理器。
downloadTaskTTVideoEngineDownloadTask *当前下载任务。
fileOffsetint64_t开始或恢复位置。
expectedTotalBytesint64_t总大小,单位为 byte。注意:播放 HLS 视频时,expectedTotalBytes 值可能不准。

VideoEngineDownloader:downloadTask:stateChanged:

- (void)VideoEngineDownloader:(TTVideoEngineDownloader *)downloader
                 downloadTask:(TTVideoEngineDownloadTask *)downloadTask
                 stateChanged:(TTVideoEngineDownloadState)downloadState;

下载任务状态改变回调。

传入参数

参数名类型说明
downloaderTTVideoEngineDownloader *下载任务管理器。
downloadTaskTTVideoEngineDownloadTask *当前下载任务。
downloadStateTTVideoEngineDownloadState当前下载状态,详见 TTVideoEngineDownloadState

TTVideoEngineSubtitleDelegate
@protocol TTVideoEngineSubtitleDelegate <NSObject>

字幕相关回调。

成员函数

返回名称
voidvideoEngine:onSubtitleInfoCallBack:pts:
voidvideoEngine:onSubtitleInfoCallBack:
voidvideoEngine:onSubtitleInfoRequested:error:
voidvideoEngine:onSubSwitchCompleted:currentSubtitleId:

函数说明

videoEngine:onSubtitleInfoCallBack:pts:

- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoCallBack:(NSString *)content pts:(NSUInteger)pts;

获取到单段字幕信息的回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
contentNSString *该段字幕的内容。
ptsNSUInteger该段字幕对应的时间戳,单位为毫秒。

videoEngine:onSubtitleInfoCallBack:

- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoCallBack:(TTVideoEngineSubInfo *)subInfo;

获取到单段字幕信息的回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
subInfoTTVideoEngineSubInfo *单段字幕信息,详见 TTVideoEngineSubInfo

videoEngine:onSubtitleInfoRequested:error:

- (void)videoEngine:(TTVideoEngine *)videoEngine onSubtitleInfoRequested:(id _Nullable)info error:(NSError * _Nullable)error;

获取到所有语言字幕信息回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
infoid所有语言字幕信息 JSON。
errorNSError *请求字幕错误信息。errornil 表示请求成功。

videoEngine:onSubSwitchCompleted:currentSubtitleId:

- (void)videoEngine:(TTVideoEngine *)videoEngine onSubSwitchCompleted:(BOOL)success currentSubtitleId:(NSInteger)currentSubtitleId;

字幕语言切换回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
successBOOL字幕语言是否成功切换:
  • YES: 成功。
  • NO: 失败。
currentSubtitleIdNSInteger当前字幕 ID。

TTVideoEngineExternDNSParserDelegate
@protocol TTVideoEngineExternDNSParserDelegate<NSObject>

该协议描述使用外部 DNS 解析 Delegate。

成员函数

返回名称
voidsetUrl:

函数说明

setUrl:

- (void)setUrl:(NSString *)urlString;

提供需要被解析的 URL。

传入参数

参数名类型说明
urlStringNSString *需要被解析的 URL。

TTVideoEnginePreRenderDelegate
@protocol TTVideoEnginePreRenderDelegate <NSObject>

预渲染策略相关回调。

成员函数

返回名称
voidvideoEngine:willPreRenderSource:
voidvideoEngineWillPrepare:

函数说明

videoEngine:willPreRenderSource:

- (void)videoEngine:(TTVideoEngine *)videoEngine willPreRenderSource:(id<TTVideoEngineMediaSource>)source;

预渲染 TTVideoEngine 实例将要渲染回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
sourceid<TTVideoEngineMediaSource>-

注意

此回调的触发时机在 [videoEngine setVideoEngineVideoSource:] 设置播放源之前。您可在此回调中设置字幕。

videoEngineWillPrepare:

- (void)videoEngineWillPrepare:(TTVideoEngine *)videoEngine;

预渲染 TTVideoEngine 实例将要播放回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。

注意

此回调的触发时机在 [videoEngine prepareToPlay] 播放之前,您可在此回调中设置大部分播放参数,例如显示模式、填充模式、起播时间、超分等。

TTVideoEngineResolutionDelegate
@protocol TTVideoEngineResolutionDelegate <NSObject>

分辨率相关回调。

成员函数

返回名称
voidvideoBitrateDidChange:resolution:bitrate:
voidvideoSizeDidChange:videoWidth:videoHeight:

函数说明

videoBitrateDidChange:resolution:bitrate:

- (void)videoBitrateDidChange:(TTVideoEngine *)videoEngine resolution:(TTVideoEngineResolutionType)resolution bitrate:(NSInteger)bitrate;

视频码率发生变化回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
resolutionTTVideoEngineResolutionType当前视频分辨率,详见 TTVideoEngineResolutionType
bitrateNSInteger当前视频码率。

videoSizeDidChange:videoWidth:videoHeight:

- (void)videoSizeDidChange:(TTVideoEngine *)videoEngine videoWidth:(NSInteger)videoWidth videoHeight:(NSInteger)videoHeight;

视频分辨率发生变化回调。

传入参数

参数名类型说明
videoEngineTTVideoEngine *videoEngine 对象。
videoWidthNSInteger当前视频宽。
videoHeightNSInteger当前视频高。