You need to enable JavaScript to run this app.
文档中心
视频点播

视频点播

复制全文
下载 pdf
SDK API 参考
类型详情
复制全文
下载 pdf
类型详情

TTVideoEngineFinishReason
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineFinishReason
)

播放结束原因。

枚举值

类型值说明
TTVideoEngineFinishReasonUserExited0用户主动退出播放。
TTVideoEngineFinishReasonRelease1播放器被释放。
TTVideoEngineFinishReasondReleaseAsync2播放器被异步释放。
TTVideoEngineFinishReasonPlaybackEnded3播放器正常播放完成。
TTVideoEngineFinishReasonPlaybackError4播放器发生错误。
TTVideoEngineFinishReasonStatusExcp5播放器发生异常。
TTVideoEngineFinishReasonReset6播放器重置。

TTVideoEnginePreloaderURLItem(PreloadItem)
@interface TTVideoEnginePreloaderURLItem (PreloadItem)

DirectUrl 视频源预加载 item。

静态函数

返回名称
nullable instancetypeurlItemWithVideoSource:preloadSize:

函数说明

urlItemWithVideoSource:preloadSize:

+ (nullable instancetype)urlItemWithVideoSource:(id<TTVideoEngineMediaSource>)source preloadSize:(NSInteger)preloadSize;

构造一个 DirectUrl 播放源预加载 Item 实例。

传入参数

参数名类型说明
sourceid<TTVideoEngineMediaSource>DirectUrl 播放源信息 TTVideoEngineMediaSource 。
preloadSizeNSInteger预加载数据大小,单位:byte。例如 800 * 1024 代表预加载 800k 数据。

返回值

返回 DirectUrl 播放源预加载 Item 实例。

TTVideoEngineStreamType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineStreamType
)

视频流类型。

枚举值

类型值说明
TTVideoEngineVideoStream0视频流。
TTVideoEngineAudioStream1音频流。

Public API

函数

返回名称
voidTTVideoURLRefreshCompleteBlock
voidTTVideoURLRefreshErrorBlock
voidTTVideoURLRefreshCancelBlock

函数说明

TTVideoURLRefreshCompleteBlock

typedef void(^TTVideoURLRefreshCompleteBlock)(NSString *newUrl, NSString *expireTimeInMS);

过期 URL 刷新完成 block。

传入参数

参数名类型说明
newUrlNSString*新 URL。
expireTimeInMSNSString*新 URL 的过期时间。精度为毫秒的 Unix 时间戳。

TTVideoURLRefreshErrorBlock

typedef void(^TTVideoURLRefreshErrorBlock)(NSError *error);

过期 URL 刷新失败 block。

传入参数

参数名类型说明
errorNSError*失败原因。

TTVideoURLRefreshCancelBlock

typedef void(^TTVideoURLRefreshCancelBlock)(void);

过期 URL 取消刷新 block。

TTVideoEngineState
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineState
)

播放器状态。

枚举值

类型值说明
TTVideoEngineStateUnknown0初始状态。
TTVideoEngineStateFetchingInfo1使用 Vid 模式播放,正在获取播放信息。
TTVideoEngineStateParsingDNS2播放器正在进行 DNS 解析。
TTVideoEngineStatePlayerRunning3播放器正常播放中。
TTVideoEngineStateError4播放器运行发生错误。

TTVideoEngineLoadState
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineLoadState
)

播放器加载状态。

枚举值

类型值说明
TTVideoEngineLoadStateUnknown0播放器加载初始状态。
TTVideoEngineLoadStatePlayable1播放器加载完成,可开始或恢复播放。
TTVideoEngineLoadStateStalled2播放器发生卡顿,正在加载数据。
TTVideoEngineLoadStateError3播放器加载数据错误。

TTVideoEngineStallAction
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineStallAction
)

导致播放器发生卡顿的具体动作。

枚举值

类型值说明
TTVideoEngineStallActionNone0默认值。
TTVideoEngineStallActionSeek1用户 seek。
TTVideoEngineStallActionSwitch2切换分辨率。

TTVideoEngineLoadInfo
@interface TTVideoEngineLoadInfo: NSObject

播放器字幕加载信息。

成员变量

类型名称
NSIntegerfirstPts
NSIntegercode
NSIntegerloadStageCode

变量说明

firstPts

@property (nonatomic, assign) NSInteger firstPts;

首段字幕展示时间戳。

code

@property (nonatomic, assign) NSInteger code;

字幕加载状态。code 为 0 表示加载成功。

loadStageCode

@property (nonatomic, assign) NSInteger loadStageCode;

字幕加载阶段状态码,用于字幕加载失败问题分析

TTVideoEngineSubInfo
@interface TTVideoEngineSubInfo: NSObject

单段字幕信息。

成员变量

类型名称
NSIntegerpts
NSString*content
NSIntegerduration

变量说明

pts

@property (nonatomic, assign) NSInteger pts;

该段字幕对应的时间戳,单位为毫秒。

content

@property (nonatomic, copy) NSString *content;

该段字幕的内容。

duration

@property (nonatomic, assign) NSInteger duration;

该段字幕持续的时间,单位为毫秒。

TTVideoEnginePreloaderSubtitleItem
@interface TTVideoEnginePreloaderSubtitleItem : TTVideoEnginePreloaderItem

Vid 播放源预加载信息。

成员变量

类型名称
NSIntegersubtitleId
NSIntegerpriorityLevel
TTVideoEngineSubDecInfoModel*subtitleInfoModel

静态函数

返回名称
instancetypepreloaderSubtitleItem:subtitleId:

变量说明

subtitleId

@property (nonatomic, assign) NSInteger subtitleId;

预加载字幕 id。

priorityLevel

@property (nonatomic, assign) NSInteger priorityLevel;

预加载优先级,默认为 TTVideoEnginePrloadPriorityDefault。

subtitleInfoModel

@property (nonatomic, strong, nonnull) TTVideoEngineSubDecInfoModel *subtitleInfoModel;

字幕源。

函数说明

preloaderSubtitleItem:subtitleId:

+ (instancetype)preloaderSubtitleItem:(TTVideoEngineSubDecInfoModel *)subtitleInfoModel
                           subtitleId:(NSInteger)subtitleId;

创建字幕预加载任务。

传入参数

参数名类型说明
subtitleInfoModelTTVideoEngineSubDecInfoModel*预加载字幕源
subtitleIdNSInteger预加载字幕源

返回值

返回字幕预加载 Item 实例。

TTVideoEngineLocalServerConfigure
@interface TTVideoEngineLocalServerConfigure : NSObject

数据加载模块配置。数据加载模块(MDL,Media Data Loader)是点播 SDK 内部的关键模块之一,为播放器提供高速、低成本、可靠的数据加载服务。点播 SDK 的预加载、文件缓存、边下边播、网络质量和成本数据监控等功能均依赖于数据模块。点播 SDK 初始化时,会默认启动数据加载模块。

成员变量

类型名称
NSIntegermaxCacheSize
NSIntegerpreloadParallelNum
NSString*downloadDirectory

变量说明

maxCacheSize

@property(nonatomic, assign) NSInteger maxCacheSize;

设置本地缓存最大数据量,单位为 byte。

preloadParallelNum

@property(nonatomic, assign) NSInteger preloadParallelNum;

设置预加载并发数,默认值为 2。

downloadDirectory

@property(nonatomic, nullable, copy) NSString *downloadDirectory;

设置下载文件的沙盒存储路径,如果你使用下载功能,该路径必须设置。

TTVideoEngineLocalServerCacheInfo
@interface TTVideoEngineLocalServerCacheInfo : NSObject

数据加载模块的本地缓存配置信息。

成员变量

类型名称
int64_tmediaSize
NSString*localFilePath

变量说明

mediaSize

@property(nonatomic, assign) int64_t mediaSize;

视频源数据大小,单位:byte。

localFilePath

@property(nonatomic,   copy) NSString *localFilePath;

本地缓存路径。

TTVideoEnginePlaybackState
typedef NS_ENUM(
    NSInteger,
    TTVideoEnginePlaybackState
)

播放状态。

枚举值

类型值说明
TTVideoEnginePlaybackStateStopped0播放停止。
TTVideoEnginePlaybackStatePlaying1播放中。
TTVideoEnginePlaybackStatePaused2播放暂停。
TTVideoEnginePlaybackStateError3播放错误。

TTVideoEngineNetworkType
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineNetworkType
)

网络类型。

枚举值

类型值说明
TTVideoEngineNetworkTypeWifi0使用 WiFi。
TTVideoEngineNetworkTypeNotWifi1使用非 WiFi。
TTVideoEngineNetworkTypeNone2未知状态。

TTVideoEngineDownloadState
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineDownloadState
)

下载状态。

枚举值

类型值说明
TTVideoEngineDownloadStateInit0初始化。
TTVideoEngineDownloadStateWaiting1等待中。
TTVideoEngineDownloadStateRunning2运行中。
TTVideoEngineDownloadStateSuspended3暂停。
TTVideoEngineDownloadStateCanceling4正在取消。
TTVideoEngineDownloadStateCompleted5完成。

TTVideoEngineLogFlag
typedef NS_OPTIONS(
    NSInteger,
    TTVideoEngineLogFlag
)

播放器输出日志模块。

枚举值

类型值说明
TTVideoEngineLogFlagNone0不输出日志。
TTVideoEngineLogFlagEngine1 << 0输出 Engine 日志。
TTVideoEngineLogFlagPlayer1 << 1输出播放内核日志。
TTVideoEngineLogFlagMDL1 << 2输出数据加载模块日志。
TTVideoEngineLogFlagDefaultTTVideoEngineLogFlagAlogEngine |
TTVideoEngineLogFlagAlogMDL |
TTVideoEngineLogFlagAlogPlayer |
TTVideoEngineLogFlagAlogPlaylistCacheModule
输出 Engine、内核、数据加载模块日志。

TTVideoEngineExternDNSParserDataSource
@protocol TTVideoEngineExternDNSParserDataSource<NSObject>

该协议描述使用外部自定义 DNS 解析 DataSource。

成员函数

返回名称
NSString*hostName
NSArray*ipList
NSIntegerttl

函数说明

hostName

- (NSString *)hostName;

解析的域名。

ipList

- (NSArray *)ipList;

域名解析出的 IP 列表。

ttl

- (NSInteger)ttl;

解析过期时间,单位:秒。

TTVideoEngineMirrorType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineMirrorType
)

镜像模式。

枚举值

类型值说明
TTVideoEngineMirrorTypeNone0无镜像。
TTVideoEngineMirrorTypeHorizontal1水平镜像。
TTVideoEngineMirrorTypeVertical2垂直镜像。
TTVideoEngineMirrorTypeHV3同时开启水平镜像和垂直镜像。

TTVideoEngineVidSource
@interface TTVideoEngineVidSource : NSObject <TTVideoEngineMediaSource>

Vid 播放源。

成员变量

类型名称
NSString*vid
NSString*playAuthToken
NSString*subtitleAuthToken
TTVideoEngineResolutionTyperesolution
TTVideoEngineEncodeTypeencodeType
BOOLisDash
BOOLisHLS
NSDictionary*urlExtendParams
NSDictionary<NSString*,NSString*>*customHeaders

成员函数

返回名称
TTVideoEngineResolutionTypepreloadVideoResolution
TTVideoEngineSubProtocolpreloadSubtitleModelBlock
instancetypeinitWithVid:playAuthToken:resolution:
instancetypeinitWithVid:playAuthToken:resolution:encodeType:isDash:isHLS:

变量说明

vid

@property (nonatomic, copy) NSString *vid;

(必需)设置视频 ID。

playAuthToken

@property (nonatomic, copy) NSString *playAuthToken;

(必需)设置用于鉴权的 playAuthToken。这是由应用服务端签算并下发给客户端的,详见客户端播放。

subtitleAuthToken

@property (nonatomic, copy) NSString *subtitleAuthToken;

设置用于鉴权的 subtitleAuthToken。这是由应用服务端签算并下发给客户端的。

resolution

@property (nonatomic, assign) TTVideoEngineResolutionType resolution;

设置视频分辨率,详见 TTVideoEngineResolutionType 。

encodeType

@property (nonatomic, assign) TTVideoEngineEncodeType encodeType;

设置视频编码格式,详见 TTVideoEngineEncodeType 。默认为 H.264。

isDash

@property (nonatomic, assign) BOOL isDash;

设置是否为 DASH。默认为 NO。

isHLS

@property (nonatomic, assign) BOOL isHLS;

设置是否为 HLS。默认为 NO。

urlExtendParams

@property (nonatomic, strong, nullable) NSDictionary *urlExtendParams;

设置视频播放地址扩展参数。

customHeaders

@property (nonatomic, strong, nullable) NSDictionary<NSString *, NSString *> *customHeaders;

播放或预加载的自定义 headers。

函数说明

preloadVideoResolution

@property (nonatomic, strong, nullable) TTVideoEngineResolutionType (^preloadVideoResolution)(void);

获取预加载档位,默认使用 resolution 设置的值,如果业务播放过程中切换档位,可以使用该回调同步修改预加载档位。

preloadSubtitleModelBlock

@property (nonatomic, strong, nullable) id<TTVideoEngineSubProtocol> (^preloadSubtitleModelBlock)(NSArray<id<TTVideoEngineSubProtocol>> *subModels);

获取缓存预加载 subtitle model。

传入参数

参数名类型说明
subModelsNSArray<id>*-

initWithVid:playAuthToken:resolution:

- (instancetype)initWithVid:(NSString *)vid
              playAuthToken:(NSString *)playAuthToken
                 resolution:(TTVideoEngineResolutionType)resolution;

初始化 Vid 播放源。

传入参数

参数名类型说明
vidNSString*视频 ID。
playAuthTokenNSString*(必需)视频 playAuthToken。这是由应用服务端签算并下发给客户端的,详见客户端播放。
resolutionTTVideoEngineResolutionType视频分辨率,详见 TTVideoEngineResolutionType 。

返回值

Vid 播放源实例。
Vid 播放源实例。

initWithVid:playAuthToken:resolution:encodeType:isDash:isHLS:

- (instancetype)initWithVid:(NSString *)vid
              playAuthToken:(NSString *)playAuthToken
                 resolution:(TTVideoEngineResolutionType)resolution
                 encodeType:(TTVideoEngineEncodeType)encodeType
                     isDash:(BOOL)isDash
                      isHLS:(BOOL)isHLS;

初始化 Vid 播放源。

传入参数

参数名类型说明
vidNSString*视频 ID。
playAuthTokenNSString*(必需)视频 playAuthToken。这是由应用服务端签算并下发给客户端的,详见客户端播放。
resolutionTTVideoEngineResolutionType视频分辨率,详见 TTVideoEngineResolutionType 。
encodeTypeTTVideoEngineEncodeType视频编码格式,详见 TTVideoEngineEncodeType 。默认为 H.264。
isDashBOOL是否为 DASH。默认为 NO。
isHLSBOOL是否为 HLS。默认为 NO。

返回值

Vid 播放源实例。

TTVideoEngineResolutionType
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineResolutionType
)

视频清晰度。

枚举值

类型值说明
TTVideoEngineResolutionTypeSD0标清 360P
TTVideoEngineResolutionTypeHD1高清 480P
TTVideoEngineResolutionTypeFullHD2超清 720P
TTVideoEngineResolutionType1080P31080P
TTVideoEngineResolutionType4K44K
TTVideoEngineResolutionTypeAuto5自动调节。该选项仅适用于 DASH 视频,表示根据网速动态调节清晰度。
TTVideoEngineResolutionTypeHD_H8540P
TTVideoEngineResolutionType2K102K

TTVideoEnginePreloaderURLItem
@interface TTVideoEnginePreloaderURLItem : TTVideoEnginePreloaderItem

DirectUrl 播放源预加载信息。

成员变量

类型名称
NSString*key
NSArray<NSString*>*urls
NSString*videoId
NSString*cacheFilePath
NSIntegerpreloadSize
NSIntegerpriorityLevel
NSString*decryptionKey
BOOLisForceUseHLSProxy

变量说明

key

@property (nonatomic, copy, nullable) NSString *key;

(必需)设置预加载任务唯一标识。建议使用 URL MD5 值作为 key。如果使用 URL MD5 值作为 key,需要注意某些 URL 可能会包含时间戳或签名等信息,在使用之前需要将这些可变部分去除,以保证使用的是不变的 URL 的 MD5 值。

urls

@property (nonatomic, copy, nullable) NSArray<NSString *> *urls;

(必需)设置预加载视频源的 URL。支持主备 URL。

videoId

@property (nonatomic, copy, nullable) NSString *videoId;

(必需)视频的唯一标识,必须与视频源一一对应。可以是您自己的视频管理系统中的视频唯一标识,也可以跟 key 赋值一样。

cacheFilePath

@property (nonatomic, copy, nullable) NSString *cacheFilePath;

指定缓存路径。SDK 有默认缓存路径,不建议您单独设置。

preloadSize

@property (nonatomic, assign) NSInteger preloadSize;

设置预加载数据大小,例如 800 * 1024 代表预加载 800k 数据。

priorityLevel

@property (nonatomic, assign) NSInteger priorityLevel;

预加载优先级,默认为 TTVideoEnginePrloadPriorityDefault。

decryptionKey

@property (nonatomic, strong, nullable) NSString *decryptionKey;

自定义私有加密密钥。用于播放加密视频。

isForceUseHLSProxy

@property (nonatomic, assign) BOOL isForceUseHLSProxy;

强制指定为hls源,通常情况下不建议使用。

TTVideoEngineStrategyPreloadConfig
@interface TTVideoEngineStrategyPreloadConfig : NSObject

自定义预加载策略配置。

成员变量

类型名称
NSIntegercount
NSIntegersize
NSIntegerstartBufferLimit
NSIntegerstopBufferLimit

变量说明

count

@property (nonatomic, assign) NSInteger count;

设置预加载视频个数。

注意

建议设置 3 - 5 个,SDK 内部限制最多 10 个,设置过多可能会带来成本浪费。

size

@property (nonatomic, assign) NSInteger size;

设置预加载视频大小,单位为(KB)。

注意

短视频场景建议设置 500 - 800K。您可根据视频时长调整,确保可以加载出视频首帧。

startBufferLimit

@property (nonatomic, assign) NSInteger startBufferLimit;

设置预加载任务开始时机。

注意

播放器缓冲 buffer 大于设置时长才会开始预加载。建议设置 15 秒以上。

stopBufferLimit

@property (nonatomic, assign) NSInteger stopBufferLimit;

设置预加载任务停止时机。

注意

播放器缓冲 buffer 小于设置时长才会停止预加载,并取消当前的预加载任务。建议设置 5 秒左右。

TTVideoEngineDataLoaderErrorType
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineDataLoaderErrorType
)

视频数据加载错误。

枚举值

类型值说明
TTVideoEngineDataLoaderErrorNone0默认值。
TTVideoEngineDataLoaderErrorFetchVideoInfo1获取视频信息时发生错误。
TTVideoEngineDataLoaderErrorStart2启动数据加载模块时发生错误。
TTVideoEngineDataLoaderErrorFetchData3下载数据时发生错误。
TTVideoEngineDataLoaderErrorWriteFile4写数据时发生错误。

TTVideoEngineLocalServerTaskInfo
@interface TTVideoEngineLocalServerTaskInfo : NSObject

数据加载模块中的缓存任务信息。

成员变量

类型名称
NSString*key
NSString*videoId
TTVideoEngineResolutionTyperesolution
NSString*localFilePath
int64_tmediaSize
int64_tpreloadSize
TTVideoEngineURLInfo*urlInfo

变量说明

key

@property (nonatomic,   copy) NSString *key;

视频源唯一标识。

videoId

@property (nonatomic, nullable, copy) NSString *videoId;

视频 ID。

resolution

@property (nonatomic, assign) TTVideoEngineResolutionType resolution;

视频源分辨率,详见 TTVideoEngineResolutionType 。

localFilePath

@property (nonatomic, nullable, copy) NSString *localFilePath;

本地缓存路径。

mediaSize

@property (nonatomic, assign) int64_t mediaSize;

视频源大小,单位:byte。

preloadSize

@property (nonatomic, assign) int64_t preloadSize;

预加载数据大小,单位:byte。

urlInfo

@property (nonatomic, nullable, strong) TTVideoEngineURLInfo *urlInfo;

视频源 URL 信息,仅预加载 Vid 播放源时有值。

TTVideoEngineStrategyType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineStrategyType
)

播放器策略类型。SDK 支持多种策略,可以单个开启使用,也可以组合使用。

枚举值

类型值说明
TTVideoEngineStrategyTypeNone1 << 0-
TTVideoEngineStrategyTypeCommon1 << 1-
TTVideoEngineStrategyTypePreload1 << 2-
TTVideoEngineStrategyTypePreRender1 << 3-

TTVideoEngineSourceType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineSourceType
)

播放源类型。

枚举值

类型值说明
TTVideoEngineSourceTypeVideoId0使用 Vid 播放源。
TTVideoEngineSourceTypeDirectUrl1使用 DirectUrl 播放源。
TTVideoEngineSourceTypeVideoModel2使用 VideoModel 播放源,需要按照 VideoModel 的格式组装播放源数据。

TTVideoEngineSeekModeType
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineSeekModeType
)

Seek 类型。

枚举值

类型值说明
TTVideoEngineSeekModeAccurateAny0精准 Seek。
TTVideoEngineSeekModeInAccurateBackWard1非精准 Seek,有助于提升起播速度。

TTVideoEngineAudioChannelType
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineAudioChannelType
)

音频左右声道。

枚举值

类型值说明
TTVideoEngineAudioChannelNormal0默认双声道。
TTVideoEngineAudioChannelRightDisable1关闭右声道。
TTVideoEngineAudioChannelLeftDisable2关闭左声道。
TTVideoEngineAudioChannelLeftUesdForLR3使用左声道数据播放左右声道。
TTVideoEngineAudioChannelRightUesdForLR4使用右声道数据播放左右声道。

TTVideoEngineStallReason
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineStallReason
)

播放器卡顿原因。

枚举值

类型值说明
TTVideoEngineStallReasonNone0默认值。
TTVideoEngineStallReasonNetwork1播放器因为网络原因导致卡顿。
TTVideoEngineStallReasonDecoder2播放器因为解码器异常导致卡顿。

TTVideoEngineMediaSource
@protocol TTVideoEngineMediaSource <NSObject>

定义播放源的接口。

成员变量

类型名称
NSString*uniqueId
TTVideoEngineSourceTypesourceType
BOOLenableFallbackRefresh
NSDictionary<NSString*,NSString*>*customHeaders

变量说明

uniqueId

@property (nonatomic, readonly, strong, getter=getUniqueId) NSString *uniqueId;

当前播放源的唯一标识。

  • TTVideoEngineSourceTypeVideoId 类型和 TTVideoEngineSourceTypeVideoModel 类型的播放源使用 vid 作为唯一标识。

  • TTVideoEngineSourceTypeDirectUrl 类型的播放源使用 cacheKey 作为唯一标识。

sourceType

@property (nonatomic, assign) TTVideoEngineSourceType sourceType;

设置播放源类型,详见 TTVideoEngineSourceType 。

enableFallbackRefresh

@property (nonatomic, assign) BOOL enableFallbackRefresh;

开启播放过程中播放 URL 地址过期自动刷新功能。

注意

开启该功能后,您需要实现 TTVideoURLRefreshFetcher 协议对象,并通过 [TTVideoEngine urlRefreshFetcher] 设置给 TTVideoEngine 播放器实例。

customHeaders

@property (nonatomic, strong, nullable) NSDictionary<NSString *, NSString *> *customHeaders;

播放或预加载的自定义 headers。

TTVideoEngineUserAction
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineUserAction
)

用户控制播放器动作。

枚举值

类型值说明
TTVideoEngineUserActionInit0初始化播放器。
TTVideoEngineUserActionPrepare1调用 prepare。
TTVideoEngineUserActionPlay2调用 play。
TTVideoEngineUserActionPause3调用 pause。
TTVideoEngineUserActionStop4调用 stop。
TTVideoEngineUserActionClose5调用 close。

TTVideoEngineAudioEffectType
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineAudioEffectType
)

音频效果。

枚举值

类型值说明
TTVideoEngineAudioEffectRTCLoudNorm4音量均衡。

TTVideoEngineSubDecInfoModel
@interface TTVideoEngineSubDecInfoModel : NSObject <TTVideoEngineSubDecInfoProtocol>

所有语言的字幕数据源,遵守 TTVideoEngineSubDecInfoProtocol 协议。

成员变量

类型名称
NSMutableArray<id>*subModels

成员函数

返回名称
instancetypeinitWithDictionary:
instancetypeinitWithSubModels:
voidaddSubModel:
NSString*jsonString
NSIntegersubtitleCount

变量说明

subModels

@property (nonatomic, strong, readonly) NSMutableArray<id<TTVideoEngineSubProtocol>> *subModels;

所有字幕源列表。

函数说明

initWithDictionary:

- (instancetype)initWithDictionary:(NSDictionary *_Nonnull)dict;

初始化所有语言的字幕数据源。

传入参数

参数名类型说明
dictNSDictionary*Dictionary 格式的字幕数据源。

返回值

返回字幕数据源 Model。

initWithSubModels:

- (instancetype)initWithSubModels:(NSArray<id<TTVideoEngineSubProtocol>> *_Nonnull)models;

初始化所有语言的字幕数据源。

传入参数

参数名类型说明
modelsNSArray<id>*字幕数据源 TTVideoEngineSubModel 数组。

返回值

返回字幕数据源 TTVideoEngineSubDecInfoModel 实例。

addSubModel:

- (void)addSubModel:(id<TTVideoEngineSubProtocol> _Nonnull)model;

增加单个语言的字幕数据源。

传入参数

参数名类型说明
modelid<TTVideoEngineSubProtocol>单个语言的字幕数据源 TTVideoEngineSubDecInfoModel 。

jsonString

- (NSString *_Nullable)jsonString;

获取字幕源 JSON String。

返回值

返回字幕源 JSON String。

subtitleCount

- (NSInteger)subtitleCount;

获取字幕源个数。

返回值

返回字幕源个数。

TTVideoEnginePreloaderVidItem
@interface TTVideoEnginePreloaderVidItem : TTVideoEnginePreloaderItem

Vid 播放源预加载信息。

成员变量

类型名称
NSString*videoId
NSString*playAuthToken
TTVideoEngineResolutionTyperesolution
NSIntegerpreloadSize
TTVideoEngineEncodeTypecodecType
BOOLencryptionEnable
BOOLhlsEnable
NSIntegerpriorityLevel
NSDictionary*urlExtendParams

变量说明

videoId

@property (nonatomic, nullable, copy) NSString *videoId;

(必需)设置视频 ID。

playAuthToken

@property (nonatomic,   copy) NSString *playAuthToken;

(必需)设置视频 playAuthToken。这是由应用服务端签算并下发给客户端的,详见客户端播放。

resolution

@property (nonatomic, assign) TTVideoEngineResolutionType resolution;

(必需)设置预加载视频分辨率,详见 TTVideoEngineResolutionType 。预加载视频分辨率要和播放的分辨率保持一致,这样才会命中预加载。

preloadSize

@property (nonatomic, assign) NSInteger preloadSize;

设置预加载数据大小,例如 800 * 1024 代表预加载 800k 数据。

codecType

@property (nonatomic, assign) TTVideoEngineEncodeType codecType;

设置预加载视频源的编码格式,详见 TTVideoEngineEncodeType ,默认为 TTVideoEngineH264。

encryptionEnable

@property (nonatomic, assign) BOOL encryptionEnable;

预加载视频源是否加密。

hlsEnable

@property (nonatomic, assign) BOOL hlsEnable;

预加载视频源是否为 HLS。

priorityLevel

@property (nonatomic, assign) NSInteger priorityLevel;

预加载优先级,默认为 TTVideoEnginePrloadPriorityDefault。

urlExtendParams

@property (nonatomic, strong, nullable) NSDictionary *urlExtendParams;

设置视频播放地址扩展参数。

TTVideoEngineRotateType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineRotateType
)

播放器旋转角度。

枚举值

类型值说明
TTVideoEngineRotateTypeNone0无旋转。
TTVideoEngineRotateType90190 度旋转。
TTVideoEngineRotateType1802180 度旋转。
TTVideoEngineRotateType2703270 度旋转。

TTVideoEngineUrlSource
@interface TTVideoEngineUrlSource : NSObject <TTVideoEngineMediaSource>

DirectUrl 播放源。

成员变量

类型名称
NSArray*urls
NSString*cacheKey
TTVideoEngineEncodeTypeencodeType
NSString*vid
NSDictionary<NSString*,NSString*>*customHeaders
NSIntegersubtitleId
TTVideoEngineSubDecInfoModel*subtitleInfoModel
BOOLisHDRSource
BOOLenableFallbackRefresh
NSString*format
NSIntegerbitrate
NSString*decryptionKey
NSString*filePath

成员函数

返回名称
instancetypeinitWithUrl:cacheKey:
instancetypeinitWithUrls:cacheKey:
instancetypeinitWithUrls:cacheKey:videoId:encodeType:decryptionKey:filePath:isHDRSource:
voidaddUrls:cacheKey:encodeType:decryptionKey:filePath:isHDRSource:

变量说明

urls

@property (nonatomic, strong) NSArray *urls;

视频 URL。支持备用 URL。

cacheKey

@property (nonatomic, copy) NSString *cacheKey;

缓存 key。这是 URL 对应的唯一标识,需遵循以下规则:

  • 不带特殊字符,能作为文件名。

  • 能和视频资源文件一一对应。

  • 建议使用 URL 的 MD5 值。

encodeType

@property (nonatomic, assign) TTVideoEngineEncodeType encodeType;

视频编码格式,详见 TTVideoEngineEncodeType 。

vid

@property (nonatomic, copy, nullable) NSString *vid;

视频 ID。

customHeaders

@property (nonatomic, strong, nullable) NSDictionary<NSString *, NSString *> *customHeaders;

播放或预加载的自定义 headers。

subtitleId

@property (nonatomic, assign) NSInteger subtitleId;

字幕Id。

subtitleInfoModel

@property (nonatomic, strong, nullable) TTVideoEngineSubDecInfoModel *subtitleInfoModel;

字幕源。

isHDRSource

@property (nonatomic, assign) BOOL isHDRSource;

是否为 HDR。

enableFallbackRefresh

@property (nonatomic, assign) BOOL enableFallbackRefresh;

开启播放过程中播放 URL 地址过期自动刷新功能。

注意

开启该功能后,您需要实现 TTVideoURLRefreshFetcher 协议对象,并通过 [TTVideoEngine urlRefreshFetcher] 设置给 TTVideoEngine 播放器实例。

format

@property (nonatomic, copy) NSString *format;

视频封装格式,例如 mp4。

bitrate

@property (nonatomic, assign) NSInteger bitrate;

视频码率。

decryptionKey

@property (nonatomic, strong, nullable) NSString *decryptionKey;

自定义密钥。用于播放加密视频。

filePath

@property (nonatomic, copy, nullable) NSString *filePath;

文件路径。

函数说明

initWithUrl:cacheKey:

- (instancetype)initWithUrl:(NSString *)url
                   cacheKey:(NSString *)cacheKey;

初始化 DirectUrl 播放源。

传入参数

参数名类型说明
urlNSString*视频 URL。
cacheKeyNSString*缓存 key。这是 URL 对应的唯一标识,需遵循以下规则:
  • 不带特殊字符,能作为文件名。
  • 能和视频资源文件一一对应。
  • 建议使用 URL 的 MD5 值。

返回值

DirectUrl 播放源实例。

initWithUrls:cacheKey:

- (instancetype)initWithUrls:(NSArray *)urls
                    cacheKey:(NSString *)cacheKey;

初始化 DirectUrl 播放源。

传入参数

参数名类型说明
urlsNSArray*视频 URL 列表。支持备用 URL。
cacheKeyNSString*缓存 key。这是 URL 对应的唯一标识,需遵循以下规则:
  • 不带特殊字符,能作为文件名。
  • 能和视频资源文件一一对应。
  • 建议使用 URL 的 MD5 值。

返回值

DirectUrl 播放源实例。

initWithUrls:cacheKey:videoId:encodeType:decryptionKey:filePath:isHDRSource:

- (instancetype)initWithUrls:(NSArray *)urls
                    cacheKey:(NSString *)cacheKey
                     videoId:(NSString * _Nullable)vid
                  encodeType:(TTVideoEngineEncodeType)encodeType
               decryptionKey:(NSString * _Nullable)decryptionKey
                    filePath:(NSString * _Nullable)filePath
                 isHDRSource:(BOOL)isHDRSource;

初始化 DirectUrl 播放源。

传入参数

参数名类型说明
urlsNSArray*视频 URL 列表。支持备用 URL。
cacheKeyNSString*缓存 key。这是 URL 对应的唯一标识,需遵循以下规则:
  • 不带特殊字符,能作为文件名。
  • 能和视频资源文件一一对应。
  • 建议使用 URL 的 MD5 值。
vidNSString*-
encodeTypeTTVideoEngineEncodeType视频编码格式,详见 TTVideoEngineEncodeType 。
decryptionKeyNSString*自定义密钥。用于播放加密视频。
filePathNSString*视频存储路径,可与 cacheKey 二选一。
isHDRSourceBOOL是否为 HDR。

返回值

DirectUrl 播放源实例。

addUrls:cacheKey:encodeType:decryptionKey:filePath:isHDRSource:

- (void)addUrls:(NSArray *)urls
       cacheKey:(NSString *)cacheKey
     encodeType:(TTVideoEngineEncodeType)encodeType
  decryptionKey:(NSString * _Nullable)decryptionKey
       filePath:(NSString * _Nullable)filePath
    isHDRSource:(BOOL)isHDRSource;

添加 DirectUrl 播放源。

传入参数

参数名类型说明
urlsNSArray*视频 URL 列表。支持备用 URL。
cacheKeyNSString*缓存 key。这是 URL 对应的唯一标识,需遵循以下规则:
  • 不带特殊字符,能作为文件名。
  • 能和视频资源文件一一对应。
  • 建议使用 URL 的 MD5 值。
encodeTypeTTVideoEngineEncodeType视频编码格式,详见 TTVideoEngineEncodeType 。
decryptionKeyNSString*自定义密钥。用于播放加密视频。
filePathNSString*视频存储路径,可与 cacheKey 二选一。
isHDRSourceBOOL是否为 HDR 源。

TTVideoEngineVideoModelSourceType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineVideoModelSourceType
)

视频格式。

枚举值

类型值说明
TTVideoEngineVideoModelSourceTypeUnkonw0未知
TTVideoEngineVideoModelSourceTypeMp41MP4
TTVideoEngineVideoModelSourceTypeDash10DASH
TTVideoEngineVideoModelSourceTypeBash11BASH

TTVideoEnginePreloaderVideoModelItem(PreloadItem)
@interface TTVideoEnginePreloaderVideoModelItem (PreloadItem)

VideoModel 视频源预加载 item。

静态函数

返回名称
nullable instancetypevideoModelItemWithVideoSource:preloadSize:params:

函数说明

videoModelItemWithVideoSource:preloadSize:params:

+ (nullable instancetype)videoModelItemWithVideoSource:(id<TTVideoEngineMediaSource>)source preloadSize:(NSInteger)preloadSize params:(nullable NSDictionary *)params;

构建一个 VideoModel 播放源预加载 Item 实例。

传入参数

参数名类型说明
sourceid<TTVideoEngineMediaSource>VideoModel 播放源。
preloadSizeNSInteger预加载数据大小,例如 800 * 1024 代表预加载 800k 数据。
paramsnullable NSDictionary*扩展参数,您无需设置。

返回值

返回 VideoModel 播放源预加载 Item 实例。

TTVideoEngineSubModel
@interface TTVideoEngineSubModel : NSObject <TTVideoEngineSubProtocol>

单个语言的字幕数据源,遵守 TTVideoEngineSubProtocol 协议。

成员变量

类型名称
NSIntegerindex
NSString*language
NSIntegerexpireTime
NSString*cacheKey

成员函数

返回名称
instancetypeinitWithDictionary:
NSDictionary*toDictionary
NSString*jsonString

变量说明

index

@property (nonatomic, assign, readonly) NSInteger index;

当前字幕 index。

language

@property (nonatomic, copy, readonly) NSString *language;

字幕语言,详见字幕语言。

expireTime

@property (nonatomic, assign, readonly) NSInteger expireTime;

字幕过期时间戳。精度为毫秒的 Unix 时间戳。

cacheKey

@property (nonatomic, copy, readonly) NSString *cacheKey;

本地缓存唯一标识。

函数说明

initWithDictionary:

- (instancetype)initWithDictionary:(NSDictionary * _Nonnull)dict;

初始化单个语言的字幕数据源。

传入参数

参数名类型说明
dictNSDictionary*字幕数据源。

返回值

返回单个语言的字幕源数据 TTVideoEngineSubModel 。

toDictionary

- (NSDictionary *_Nullable)toDictionary;

将字幕数据源 Model 转换为 Dictionary。

jsonString

- (NSString *_Nullable)jsonString;

将字幕数据源 Model 转换为 JSON String。

TTVideoEnginePreloaderVideoModelItem
@interface TTVideoEnginePreloaderVideoModelItem : TTVideoEnginePreloaderItem

VideoModel 播放源预加载信息。

成员变量

类型名称
TTVideoEngineResolutionTyperesolution
TTVideoEngineModel*videoModel
NSIntegerpreloadSize
NSIntegerpriorityLevel

变量说明

resolution

@property (nonatomic, assign) TTVideoEngineResolutionType resolution;

设置视频源分辨率,详见 TTVideoEngineResolutionType 。

videoModel

@property (nonatomic, strong, nullable) TTVideoEngineModel *videoModel;

设置视频源信息。

preloadSize

@property (nonatomic, assign) NSInteger preloadSize;

设置预加载数据大小,单位:byte。例如 800 * 1024 代表预加载 800k 数据。

priorityLevel

@property (nonatomic, assign) NSInteger priorityLevel;

预加载优先级,默认为 TTVideoEnginePrloadPriorityDefault。

TTVideoEngineEncodeType
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineEncodeType
)

视频编码类型。

枚举值

类型值说明
TTVideoEngineH2640H.264
TTVideoEngineh2653H.265

TTVideoEngineRenderEngine
typedef NS_ENUM(
    NSUInteger,
    TTVideoEngineRenderEngine
)

视频渲染方式。

枚举值

类型值说明
TTVideoEngineRenderEngineOpenGLES0OpenGLES 渲染。
TTVideoEngineRenderEngineMetal1Metal 渲染。
TTVideoEngineRenderEngineOutput2业务外部渲染,不使用 SDK 渲染。

TTVideoEnginePreloaderVidItem(PreloadItem)
@interface TTVideoEnginePreloaderVidItem (PreloadItem)

VID 视频源预加载 item。

静态函数

返回名称
nullable instancetypevidItemWithVideoSource:preloadSize:

函数说明

vidItemWithVideoSource:preloadSize:

+ (nullable instancetype)vidItemWithVideoSource:(id<TTVideoEngineMediaSource>)source preloadSize:(NSInteger)preloadSize;

构建一个 Vid 播放源预加载 Item 实例。

传入参数

参数名类型说明
sourceid<TTVideoEngineMediaSource>Vid 播放源。
preloadSizeNSInteger预加载数据大小,单位:byte。例如 800 * 1024 代表预加载 800k 数据。

返回值

返回 Vid 播放源预加载 Item 实例。

TTVideoEngineScalingMode
typedef NS_ENUM(
    NSInteger,
    TTVideoEngineScalingMode
)

播放器缩放模式。

枚举值

类型值说明
TTVideoEngineScalingModeNone0无拉伸,不会变形,可能有黑边。
TTVideoEngineScalingModeAspectFit1按照视频宽高等比适配画面,不会变形,可能有黑边。
TTVideoEngineScalingModeAspectFill2按照视频宽高等比填充画面,不会变形,可能有画面裁剪。
TTVideoEngineScalingModeFill3-

TTVideoEngineSubProtocol
@protocol TTVideoEngineSubProtocol <NSObject>

单个语言的字幕数据源协议。

成员变量

类型名称
NSIntegerlanguageId
NSString*urlString
NSString*format
NSIntegersubtitleId
NSString*cacheKey

成员函数

返回名称
NSDictionary*toDictionary
NSString*jsonString

变量说明

languageId

@property (nonatomic, assign, readonly) NSInteger languageId;

字幕语言 ID。详见字幕语言。

urlString

@property (nonatomic, copy, readonly) NSString *urlString;

字幕 URL 地址。

format

@property (nonatomic, copy, readonly) NSString *format;

字幕格式。

subtitleId

@property (nonatomic, assign, readonly) NSInteger subtitleId;

字幕 ID。

cacheKey

@property (nonatomic, copy, readonly) NSString *cacheKey;

本地缓存唯一标识。

函数说明

toDictionary

- (NSDictionary *_Nullable)toDictionary;

将字幕数据源 Model 转换为 Dictionary。

jsonString

- (NSString *_Nullable)jsonString;

将字幕数据源 Model 转换为 JSON String。

TTVideoEngineSubDecInfoProtocol
@protocol TTVideoEngineSubDecInfoProtocol <NSObject>

所有语言的字幕数据源协议。

成员函数

返回名称
NSString*jsonString
NSIntegersubtitleCount

函数说明

jsonString

- (NSString *_Nullable)jsonString;

注入 JSON 格式的字幕数据源。

返回值

返回 JSON 格式的字幕源数据。

subtitleCount

- (NSInteger)subtitleCount;

获取字幕语言的个数。

返回值

返回字幕语言的个数。

最近更新时间:2026.03.18 11:15:53
这个页面对您有帮助吗?
有用
有用
无用
无用