logologo
售前咨询
点播云
产品简介
购买指南
快速入门
控制台指南
服务端API
SDK文档
播放器SDK
Web端播放器
Android端播放器
iOS端播放器
上传SDK
服务端SDK
相关协议
文档中心SDK文档播放器SDKiOS端播放器SDK API

SDK API


KSMediaPlayer

@interface KSMediaPlayer : NSObject

点播播放器类,提供点播播放能力。

  • 位置:KSMediaPlayer.h

成员变量

playerView

@property (nonatomic, strong, readonly, nullable) UIView *playerView;

播放器视图,用来渲染视频画面,需要添加到父视图。

scalingMode

@property (nonatomic, assign) KSMediaPlayerScalingMode scalingMode;

播放器视图的缩放模式,默认为KSMediaPlayerScalingMode_AspectFit

delegate

@property (nonatomic, weak, nullable) id<KSMediaPlayerDelegate> delegate;

播放器代理,提供播放器的事件等回调。

downloadDelegate

@property (nonatomic, weak, nullable) id<KSMediaPlayerDownloadDelegate> downloadDelegate;

播放器数据下载代理。

videoContext

@property (nonatomic, strong, nonnull) KSMediaPlayerVideoContext *videoContext;

用来传入数据统计和触发后端转码流程的必要参数。

scene

@property (nonatomic, assign) KSMediaPlayerScene scene;

播放场景,比如上下滑、点击等,SDK可以针对不同的场景进行相应的优化。

playbackRate

@property (nonatomic, assign) float playbackRate;

设置倍速播放《小于1.0:慢速播放》《大于1.0:快速播放 》《1.0<默认>:正常速度》。

enableHardwareDecode

@property (nonatomic, assign) BOOL enableHardwareDecode;

设置是否支持开启硬解 ,默认Yes。

enableAccurateSeek

@property (nonatomic, assign) BOOL enableAccurateSeek;

设置是否支持精准seek ,默认Yes。

shouldMute

@property (nonatomic, assign) BOOL shouldMute;

设置是否静音 默认NO。

shouldAutoplay

@property (nonatomic, assign) BOOL shouldAutoplay;

设置是否自动播放,默认NO。

如过设置为YES放器在调用- (void)prepareToPlay方法,准备完成之后会自动播放。

如果设置为NO播放器在调用- (void)prepareToPlay方法,准备完成之后不会自动播放。

需要在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event代理中KSMediaPlayerEvent_IsPrepared事件回调之后调用- (void)play方法播放

shouldPlayInBackground

@property (nonatomic, assign) BOOL shouldPlayInBackground;

设置是否后台播放,默认NO。

设置为NO,播放状态下进入后台会自动暂停,切回前台会自动播放。

设置为YES,播放器进入后台不会暂停播放。如果支持后台播放,需要在XCode -> TARGETS -> Capablities申请Background Modes并且将该字段设为YES

shouldPlayFromHistory

@property (nonatomic, assign) BOOL shouldPlayFromHistory;

是否同一视频从历史进度起播,默认NO。

videoMirror

@property (nonatomic, assign) BOOL videoMirror;

视频镜像,默认NO。

duration

@property (nonatomic, assign, readonly) NSTimeInterval duration;

获取资源时长。

playableDuration

@property (nonatomic, assign, readonly) NSTimeInterval playableDuration;

获取资源可播时长。

currentPlaybackTime

@property (nonatomic, assign) NSTimeInterval currentPlaybackTime;

获取当前播放进度。

bufferingProgress

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

获取缓冲进度,百分比。

videoResolution

@property (nonatomic, assign, readonly) CGSize videoResolution;

获取视频分辨率。

shouldLoop

@property (nonatomic, assign, readonly) BOOL shouldLoop;

获取是否循环播放。

isPreparedToPlay

@property (nonatomic, assign, readonly) BOOL isPreparedToPlay;

获取是否已经准备好,可以播放。

isPlaying

@property (nonatomic, assign, readonly) BOOL isPlaying;

获取是否正在播。

currentPlayUrl

@property (nonatomic, strong, readonly) KSMediaPlayerManifestDispatchResult * _Nullable manifestDisposeResult;

获取当前manifest调度结果。

debugInfo

@property (nonatomic, strong, readonly) KSMediaPlayerDebugInfo * _Nullable debugInfo;

获取debugInfo。

playbackState

@property (nonatomic, assign, readonly) KSMediaPlayerPlaybackState playbackState;

当前的播放状态。

isVideoFirstFrameRender

@property(nonatomic, assign, readonly) BOOL isVideoFirstFrameRender;

获取视频第一帧是否已经渲染完成。

isAudioFirstFrameRender

@property(nonatomic, assign, readonly) BOOL isAudioFirstFrameRender;

获取音频第一帧是否已经渲染完成。

isBuffering

@property(nonatomic, assign, readonly) BOOL isBuffering;

获取是否正在缓冲。

isSeeking

@property(nonatomic, assign, readonly) BOOL isSeeking;

获取是否正在seek。

leftVolume

@property(nonatomic, assign, readonly) float leftVolume;

rightVolume

@property(nonatomic, assign, readonly) float rightVolume;

获取右声道音量。

enablePipModeRender

@property (nonatomic, assign) BOOL enablePipModeRender;

是否允许小窗模式渲染,如果不是在小窗模式一定要关闭

isReused

@property (nonatomic, readonly) BOOL isReused;

是否复用播放器实例。

danmakuView

@property (nonatomic, weak) UIView * _Nullable danmakuView;

弹幕view。

maskVttContent

@property (nonatomic, copy) NSString * _Nullable maskVttContent;

弹幕防挡文件content (本地)。

maskVttURL

@property (nonatomic, strong) NSURL * _Nullable maskVttURL;

弹幕防挡文件地址(远程)。

danmakuMaskEnable

@property (nonatomic, assign) BOOL danmakuMaskEnable;

是否开启弹幕防挡。

interactiveMode

@property (nonatomic, assign) KSMediaPlayerInteractiveMode interactiveMode;

播放器VR交互模式。

默认 KSMediaPlayerInteractiveModeMotion  /**< 陀螺仪 */。

只有在调用了prepareToPlay接口后设置有效。

成员方法

initWithUrl:

- (instancetype _Nullable)initWithUrl:(NSString *_Nonnull)url;

传入url初始化播放器。

  • 参数
    • url
      • 说明:视频URL。

initWithUrl:cacheKey

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

传入url和cacheKey初始化点播播放器

  • 参数
    • url:视频URL。
    • cacheKey:videoUrl对应的业务自定义cacheKey。

initWithVodConfigurator:

- (instancetype _Nullable)initWithVodConfigurator:(void(^_Nonnull)(KSMediaPlayerVodConfigration *_Nonnull vodConfig))vodConfigurator;

传入configuration点播播放器。

  • 参数
    • vodConfigurator

initWithManifest:

- (instancetype _Nullable)initWithManifest:(NSString *_Nonnull)manifest;

传入manifest初始化点播播放器并指定档位。

  • 参数
    • manifest
      • 说明:manifest

initWithManifest:qualityType:

- (instancetype _Nullable)initWithManifest:(NSString *_Nonnull)manifest qualityType:(NSString *_Nullable)qualityType;

传入manifest初始化点播播放器并指定档位。

prepareToPlay

- (void)prepareToPlay;

准备播放《播放器初始化后调用》。

准备完成会在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event代理中收到KSMediaPlayerEvent_IsPrepared事件。

如果shouldAutoplay设置为NO,需要在KSMediaPlayerEvent_IsPrepared事件代理回调之后调用- (void)play方法播放。

play

- (void)play;

播放。播放器准备完成后可调用。

如果shouldAutoplay设置为NO,需要在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event代理中收到KSMediaPlayerEvent_IsPrepared事件代理回调之后调用此方法播放。

pause

- (void)pause;

暂停播放。

seekToTime:

- (void)seekToTime:(CMTime)time;

Seek (单位秒) ,播放器Play之后调用。

Seek成功之后会在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event代理中收到KSMediaPlayerEvent_SeekComplete事件代理回调

  • 参数
    • time
      • 说明:需要seek到的时间位置。

setShouldLoop:

- (void)setShouldLoop:(BOOL)shouldLoop;

设置是否循环播放。默认NO。

setVolume:right:

- (void)setVolume:(float)left right:(float)right;

设置播放音量。

  • 参数
    • left
      • 说明:左声道音量 0  ~  1.0
    • right
      • 说明:右声道音量 0 ~ 1.0

stop

- (void)stop;

停止播放和下载,不可恢复。但播放器不销毁。

destroy

- (void)destroy;

销毁播放器资源。

seekAtStart:

- (void)seekAtStart:(CMTime)time;

设置起播时间(毫秒)。需要在- (void)prepareToPlay方法前调用。

  • 参数
    • time
      • 说明:起播时间。

retryPlayback

- (BOOL)retryPlayback;

播放重试,可在断网或网络切换导致的播放错误后调用,重试成功后自动从出错位置开始播放。

  • 返回值
    • 说明: Yes重试播放成功;NO重试播放失败。

switchVideoQualityWithPlayUrl:

- (void)switchVideoQualityWithPlayUrl:(NSString *_Nonnull)playUrl;

单url切换清晰度。

  • 参数
    • playUrl
      • 说明:新的清晰度url。

switchVideoQualityWithQualityType:

- (void)switchVideoQualityWithQualityType:(NSString *_Nonnull)qualityType;

manifest切换清晰度。

disableLocalCache:

- (void)disableLocalCache:(BOOL)disableCache;

是否关闭本地写缓存。

  • 参数
    • disableCache
      • 说明:是否关闭本地写缓存。

thumbnailImageAtCurrentTime

- (UIImage *_Nonnull)thumbnailImageAtCurrentTime;

获取当前帧截图。

  • 返回值
    • 说明:返回当前帧截图的UIImage实例。

refreshVttContent:

- (void)refreshVttContent:(NSString *_Nonnull)vttContent;

更新弹幕防content(本地)。

收到mediaPlayer:danmakuMaskVttError:回调之后,调用此接口更新本地弹幕防挡content。

  • 参数
    • vttContent
      • 说明:弹幕防挡文件content (本地)。

refreshVttURL:

- (void)refreshVttURL:(NSURL *_Nonnull)vttURL;

更新弹幕防文件(远程)。

收到mediaPlayer:danmakuMaskVttError:回调之后,调用此接口弹幕更新防挡文件地址(远程)。

  • 参数
    • vttURL
      • 说明:弹幕防挡文件地址(远程)。

updateMaskWithVideoFrame:

- (void)updateMaskWithVideoFrame:(CGRect)videoFrame;

playerView frame发生变化时 传入playerView相对danmakuView的相对frame来更新防挡区域。

addSubtitles:selectedIndex:

- (void)addSubtitles:(NSArray<NSURL *> *_Nonnull)subtitles selectedIndex:(NSUInteger)selectedIndex;

设置外挂字幕。

  • 参数
    • subtitles
      • 说明:字幕源数据。
    • selectedIndex
      • 说明:默认选中的字幕对应的数组index。

setSubtitleIndex:selected:

- (void)setSubtitleIndex:(NSUInteger)index selected:(BOOL)selected;

更新外挂字幕选中状态。

  • 参数
    • index
      • 说明:字幕对应的数组index。
    • selected
      • 说明:选中/取消选中。

handlePanGestures:

- (void)handlePanGestures:(UIPanGestureRecognizer *_Nonnull)panGesture;

处理拖拽手势。

interactiveMode一定要设置为KSMediaPlayerInteractiveModeTouchKSMediaPlayerInteractiveModeMotionWithTouch才生效。

  • 参数
    • panGesture
      • 说明:拖拽手势实例。

handlePinches:

- (void)handlePinches:(UIPinchGestureRecognizer *_Nonnull)pinchedGesture;

处理捏合手势。

interactiveMode一定要设置为KSMediaPlayerInteractiveModeTouchKSMediaPlayerInteractiveModeMotionWithTouch才生效。

  • 参数
    • pinchedGesture
      • 说明:捏合手势实例。

类方法

createPlayerWithUrl:reuseEnable

+ (instancetype _Nullable)createPlayerWithUrl:(NSString *_Nonnull)url reuseEnable: (BOOL)reuseEnable;

创建播放器<url>。是否复用播放器实例。

  • 参数
    • url
      • 说明:url。
    • reuseEnable
      • 说明:是否复用播放器实例。
      • YES:播放器内部会处理播放器实例复用的相关逻辑。

createPlayerWithUrl:cacheKey:reuseEnable

+ (instancetype _Nullable)createPlayerWithUrl:(NSString *_Nonnull)url cacheKey:(NSString *_Nullable)cacheKey reuseEnable: (BOOL)reuseEnable;

创建播放器<url>,是否复用播放器实例。

  • 参数
    • url
      • 说明:url。
    • cacheKey
      • 说明:缓存key。
    • reuseEnable
      • 说明:是否复用播放器实例。
      • YES:播放器内部会处理播放器实例复用的相关逻辑。

createPlayerWithManifest:qualityType:reuseEnable

+ (instancetype _Nullable)createPlayerWithManifest:(NSString *_Nonnull)manifest qualityType:(NSString *_Nullable)qualityType reuseEnable: (BOOL)reuseEnable;

创建播放器<manifest>,是否复用播放器实例。

  • 参数
    • manifest
      • 说明:manifest。
    • qualityType
    • reuseEnable
      • 说明:是否复用播放器实例。
      • YES:播放器内部会处理播放器实例复用的相关逻辑。

createPlayerWithVideoId:playToken:completion

+ (void)createPlayerWithVideoId:(NSString *_Nonnull)videoId playToken:(NSString *_Nonnull)playToken completion:(void(^_Nonnull)(KSMediaPlayer *_Nullable player, NSError *_Nullable error))completion;

通过videoId创建播放器。

  • 参数
    • videoId
      • 说明:videoId 快手转码的videoId。
    • playToken
      • 说明:播放凭证,由业务server下发。
    • completion
      • 说明: 播放器创建回调Block。
        • 参数
          • player
          • error
            • 说明:错误信息。nil,创建成功。

version

+ (NSString *_Nonnull)version;

获取SDK版本号。

  • 返回值:
    • 说明:返回SDK版本号字符串。

deviceId

+ (NSString *_Nonnull)deviceId;

获取deviceId。

  • 返回值:
    • 说明:返回deviceId字符串。


KSMediaPlayerDelegate

@protocol KSMediaPlayerDelegate <NSObject>

播放器代理,播放相关回调。

  • 位置:KSMediaPlayer.h

协议方法

mediaPlayer:playbackStateChanged:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer playbackStateChanged:(KSMediaPlayerPlaybackState)state;

播放器播放状态回调。

mediaPlayer:eventChanged:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event;

播放器事件回调。

mediaPlayer:loadStateChanged:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer loadStateChanged:(KSMediaPlayerLoadState)state;

播放器加载状态回调。

mediaPlayer:didFinishReason:error:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer didFinishReason:(KSMediaPlayerFinishReason)reason error:(NSError *_Nullable)error;

播放器完成回调。

mediaPlayer:needRefreshUrlWithReason:

- (NSString *_Nullable)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer needRefreshUrlWithReason:(KSMediaPlayerUrlRefreshReason)reason;

播放器需要重新提供url以继续播放。《当前视频所有的源都不可用的时候,此代理会回调,是否有新的源可以提供播放》。

  • 返回值
    • 说明:新的源的URL。

mediaPlayer:bufferProgress:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer bufferProgress:(NSInteger)bufferProgress;

播放器缓冲进度回调。

  • 参数
    • mediaPlayer
    • bufferProgress
      • 说明:缓冲进度《取值0-100》。

mediaPlayer:manifestSelectedRepresentation:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer manifestSelectedRepresentation:(KSMediaPlayerManifestRepresentation *_Nullable)representation;

manifest选中档位回调。

mediaPlayer:danmakuMaskVttError:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer danmakuMaskVttError:(NSError *_Nullable)error;

弹幕防挡文件错误。

  • 参数
    • mediaPlayer
    • error
      • 说明:错误信息。

mediaPlayer:subTitleStatusChangedWithIndex:error:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer subTitleStatusChangedWithIndex:(NSUInteger)index error:(NSError *_Nullable)error;

外挂字幕错误回调。

  • 参数
    • mediaPlayer
    • index
      • 说明:当前选中的字幕index。
    • error
      • 说明:错误信息

mediaPlayer:subtitleSegments:

- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer subtitleSegments:(NSArray<KSMediaPlayerSubtitleSegment *> *_Nullable)subtitleSegments;

外挂字幕内容回调。


KSMediaPlayerDownloadDelegate

@protocol KSMediaPlayerDownloadDelegate <NSObject>

播放器数据下载代理。

  • 位置:KSMediaPlayerDownloadInfo.h

协议方法

- (void)onMediaPlayerDownloadFinish:(KSMediaPlayerDownloadInfo *_Nullable)downloadInfo;

- (void)onMediaPlayerDownloadFinish:(KSMediaPlayerDownloadInfo *_Nullable)downloadInfo;

播放器一次下载数据完成回调。


KSMediaPlayerDownloadInfo

@interface KSMediaPlayerDownloadInfo : NSObject

播放器下载数据信息。

  • 位置:KSMediaPlayerDownloadInfo.h

成员变量

videoId

@property (nonatomic, copy) NSString *videoId;

视频唯一标识。

inputURL

@property (nonatomic, copy) NSString *inputURL;

视频完成URL。

uri

@property (nonatomic, copy) NSString *uri;

尽量完成的视频url,带params(底层维护的url)。

host

@property (nonatomic, copy) NSString *host;

host。

cacheKey

@property (nonatomic, copy) NSString *cacheKey;

缓存key。

ip

@property (nonatomic, copy) NSString *ip;

ip。

sessionUUID

@property (nonatomic, copy) NSString *sessionUUID;

一次任务(预加载/播放)id,保持唯一。

downloadUUID

@property (nonatomic, copy) NSString *downloadUUID;

一次HTTP请求id,保持唯一。

contentLength

@property (nonatomic, assign) NSInteger contentLength;

HTTP contentLength。

totalBytes

@property (nonatomic, assign) NSInteger totalBytes;

资源总大小 (单位byte)。

position

@property (nonatomic, assign) NSInteger position;

当前已下载大小(单位byte)。

downloadState

@property (nonatomic, assign) KSMediaPlayerDownloadState downloadState;

下载状态。

httpResponseCode

@property (nonatomic, assign) NSInteger httpResponseCode;

对应的HTTP错误码。

errorCode

@property (nonatomic, assign) NSInteger errorCode;

错误码。

errorMsg

@property (nonatomic, copy) NSString *errorMsg;

错误信息。

downloadBytes

@property (nonatomic, assign) NSInteger downloadBytes;

一次请求下载大小(单位byte)。

timeCost

@property (nonatomic, assign) NSInteger timeCost;

一次请求下载耗时(单位ms)。

stopReason

@property (nonatomic, assign) KSMediaPlayerDownloadStopReason stopReason;

下载结束原因

networkType

@property (nonatomic, assign) KSMediaPlayerNetworkType networkType;

下载使用的网络


KSMediaPlayerVideoContext

@interface KSMediaPlayerVideoContext : NSObject

用来传入数据统计和触发后端转码流程的必要参数

  • 位置:KSMediaPlayerVideoContext.h

成员变量

videoId

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

视频唯一标识。

clickTimeMS

@property (nonatomic, assign) NSTimeInterval clickTimeMS;

用户打开播放页面时的系统时间,单位毫秒,用来计算用户等待首屏真实时长。

bizName

@property (nonatomic, copy) NSString * _Nullable bizName;

业务名称。

sceneName

@property (nonatomic, copy) NSString * _Nullable sceneName;

场景名称。

pageName

@property (nonatomic, copy) NSString * _Nullable pageName;

页面名称。

abConfig

@property (nonatomic, copy) NSString * _Nullable abConfig;

实验信息。

appChannel

@property (nonatomic, copy) NSString * _Nullable appChannel;

渠道信息。

cdnManufactor

@property (nonatomic, copy) NSString * _Nullable cdnManufactor;

CDN厂商。

extra

@property (nonatomic, copy) NSString * _Nullable extra;

扩展信息,业务自定义,json string。


KSMediaPlayerManifestDispatchResult

@interface KSMediaPlayerManifestDispatchResult : NSObject

Manifest调度结果。

  • 位置:KSMediaPlayerManifestDispatchResult.h

成员变量

vcodec

@property (nonatomic, copy) NSString *vcodec;

编码标准,avc或hevc。

repList

@property (nonatomic, strong) NSArray<KSMediaPlayerManifestRepresentation *> *repList;

多码率视频数组。


KSMediaPlayerManifestRepresentation

@interface KSMediaPlayerManifestRepresentation : NSObject

Manifest信息。

  • 位置:KSMediaPlayerManifestDispatchResult.h

成员变量

repId

@property (nonatomic, assign) NSInteger repId;

id。

url

@property (nonatomic, copy) NSString *url;

url。

qualityType

@property (nonatomic, copy) NSString *qualityType;

类型。

qualityLabel

@property (nonatomic, copy) NSString *qualityLabel;

标签。


KSMediaPlayerDebugInfo

@interface KSMediaPlayerDebugInfo : NSObject

点播debugInfo。

  • 位置:KSMediaPlayerDebugInfo.h

成员变量

version

@property (nonatomic, copy) NSString *version;

sdk版本号。

deviceId

@property (nonatomic, copy) NSString *deviceId;

设备ID。

memoryInfo

@property (nonatomic, copy) NSString *memoryInfo;

内存信息。

cpuInfo

@property (nonatomic, copy) NSString *cpuInfo;

cpu信息。

inputURL

@property (nonatomic, copy) NSString *inputURL;

视频URL。

playingURI

@property (nonatomic, copy) NSString *playingURI;

播放URL。

playingHost

@property (nonatomic, copy) NSString *playingHost;

播放Host。

playingHostIp

@property (nonatomic, copy) NSString *playingHostIp;

播放IP。

videoCodec

@property (nonatomic, copy) NSString *videoCodec;

视频解码信息。

audioCodec

@property (nonatomic, copy) NSString *audioCodec;

音频解码信息。

fps

@property (nonatomic, assign) NSInteger fps;

fps。

bitrate

@property (nonatomic, assign) NSInteger bitrate;

比特率。

duration

@property (nonatomic, assign) NSInteger duration;

视频时长,单位ms。

width

@property (nonatomic, assign) NSInteger width;

视频宽度。

height

@property (nonatomic, assign) NSInteger height;

视频高度。

fileName

@property (nonatomic, copy) NSString *fileName;

文件名字。

cacheCurrentReadingUri

@property (nonatomic, copy) NSString *cacheCurrentReadingUri;

当前url。

startPlayBlockStatus

@property (nonatomic, copy) NSString *startPlayBlockStatus;

起播信息。《开播阈值 | 实际缓冲 | 耗时上限 | 时机耗时 ...》。

cacheV2Info

@property (nonatomic, copy) NSString *cacheV2Info;

缓存信息《预加载字节数 | 码率(单位byte)| 对应字节数 ...》。

cachedBytesOnOpen

@property (nonatomic, assign) NSInteger cachedBytesOnOpen;

起播时缓存字节数,单位byte。

playableDurationMs

@property (nonatomic, assign) NSInteger playableDurationMs;

可播放时长,单位ms。

totolScreen

@property (nonatomic, assign) NSInteger totolScreen;

总首屏时间,单位ms。准备完成之后到首屏出现的总时间。

firstScreen

@property (nonatomic, assign) NSInteger firstScreen;

首屏时间,单位ms。单播放到首屏出现时间

firstScreenStepInfo

@property (nonatomic, copy) NSString *firstScreenStepInfo;

首屏各个步骤耗时信息《DNS解析 | HTTP建连 | 首个数据包 | 打开流媒体 ...》。

videoRenderType

@property (nonatomic, assign) NSInteger videoRenderType;

视频渲染类型。

hdrType

@property (nonatomic, copy) NSString *hdrType;

HDR类型《sdr/hdr ...》。

vodAdaptiveInfo

@property (nonatomic, copy) NSString *vodAdaptiveInfo;

适配信息《播放器的各种信息》。

成员方法

debugInfoFormatString

- (NSString *)debugInfoFormatString;

获取debugInfo字符串。整合debugInbfo信息,以String方式输出。


KSMediaPlayerVodConfigration

@interface KSMediaPlayerVodConfigration : NSObject

播放器初始化用configuration。

  • 位置:KSMediaPlayerVodConfigration.h

成员变量

initType

@property (nonatomic, readonly) KSMediaPlayerInitType initType;

初始化类型。

url

@property (nonatomic, copy) NSString *url;

url。

cacheKey

@property (nonatomic, copy) NSString *cacheKey;

自定义cachekey。

videoQualityType

@property (nonatomic, copy) NSString *videoQualityType;

视频档位类型。

videoId

@property (nonatomic, copy) NSString *videoId;

videoId。(快手转码的videoId)。

playToken

@property (nonatomic, copy) NSString *playToken;

播放凭证。《由server下发》(如通过videoId播放 playToken为必传项)。

manifest

@property (nonatomic, copy) NSString *manifest;

manifest。

成员方法

configWithUrl:

- (void)configWithUrl:(NSString *)url;

通过URL播放。

  • 参数
    • url
      • 说明:当前url

configWithVideoId:playToken:

- (void)configWithVideoId:(NSString *)videoId playToken:(NSString *)playToken;

通过videoId播放。

  • 参数
    • videoId
      • 说明:videoId(快手转码的videoId)。
    • playToken
      • 说明:播放凭证。《由server下发》。

configWithManifest:

- (void)configWithManifest:(NSString *)manifest;

通过manifest播放。

  • 参数
    • manifest
      • 说明:manifest


KSMediaPlayerSubtitleSegment

@interface KSMediaPlayerSubtitleSegment : NSObject

外挂字幕信息。

  • 位置:KSMediaPlayerSubtitleSegment.h

成员变量

pts

@property(nonatomic, assign) NSInteger pts;

帧时间。

text

@property(nonatomic, copy) NSString *text;

文字。

data

@property(nonatomic, strong) NSData *data;

数据。


KSMediaVideoIdManager

@interface KSMediaVideoIdManager : NSObject

videoId管理。

  • 位置:KSMediaVideoIdManager.h

类方法

sharedInstance

+ (instancetype)sharedInstance;

获取单例。

成员方法

fetchPlayInfoWithVideoId:playToken:completion

- (void)fetchPlayInfoWithVideoId:(NSString *)videoId
playToken:(NSString *)playToken
completion:(void(^)(KSMediaVideoIdPlayInfo *playInfo, NSError *error, NSString *requestId))compltion;

获取播放信息。

  • 参数
    • videoId
      • 说明:videoId
    • playToken
      • 说明:播放凭证
    • compltion
      • 说明获取完成回调Block
        • 参数
          • playInfo
          • error
            • 说明:错误信息。
          • requestId
            • 说明:请求ID。

getPayloadInfoWithPlayToken:

- (NSDictionary *)getPayloadInfoWithPlayToken:(NSString *)playToken;

获取PayloadInfo。

  • 参数
    • playToken
      • 说明:播放凭证。

removePlayInfo:

- (void)removePlayInfo:(NSString *)videoId;

移除videoId。

  • 参数
    • videoId
      • 说明:videoId。


KSMediaVideoIdPlayInfo

@interface KSMediaVideoIdPlayInfo : NSObject

videoId播放信息。

  • 位置:KSMediaVideoIdManager.h

成员变量

videoId

@property (nonatomic, copy) NSString *videoId;

videoId。

manifest

@property (nonatomic, copy) NSString *manifest;

manifest。


KSMediaPlayerCache

@interface KSMediaPlayerCache : NSObject

播放器缓存。

  • 位置:KSMediaPlayerCache.h

类方法

clearCache

+ (void)clearCache;

清空缓存。

getTotalCachedSize

+ (int64_t)getTotalCachedSize;

获取缓存总大小,单位:字节。

  • 返回值
    • 说明:返回缓存总大小,单位:字节。

isFullyCached:

+ (BOOL)isFullyCached:(NSURL * _Nonnull)url;

判断单个视频是否全部缓存《业务未传入自定义cacheKey时调用》。

  • 参数
    • url
      • 说明:视频url。
  • 返回值
    • 说明:YES,已经完全缓存;NO,没有完全缓存。

isFullyCachedWithKey:

+ (BOOL)isFullyCachedWithKey:(NSString * _Nonnull)cacheKey;

用cacheKey判断单个视频是否全部缓存《业务传入自定义cacheKey时调用》。

  • 参数
    • cacheKey
      • 说明:缓存Key。
  • 返回值
    • 说明:YES,已经完全缓存;NO,没有完全缓存。

getCachedSizeWithUrl:

+ (int64_t)getCachedSizeWithUrl:(NSURL * _Nonnull)url;

获取单个视频缓存大小,单位:字节。《业务未传入自定义cacheKey时调用》。

  • 参数
    • url
      • 说明:视频url。
  • 返回值
    • 说明:视频缓存大小,单位:字节。

getCachedSizeWithKey:

+ (int64_t)getCachedSizeWithKey:(NSString * _Nonnull)cacheKey;

用cacheKey获取单个视频缓存大小,单位:字节。《业务传入自定义cacheKey时调用》。

  • 参数
    • cacheKey
      • 说明:缓存Key。
  • 返回值
    • 说明:视频缓存大小,单位:字节。

setCacheKeyGenerate:

+ (void)setCacheKeyGenerate:(KSMediaPlayerCacheKeyGenerate _Nonnull)cacheKeyGenerate;

设置cacheKey生成方法。


KSMediaPlayerConfig

@interface KSMediaPlayerConfig : NSObject

播放器配置。提供播放器初始化,基本设置等功能。

  • 位置:KSMediaPlayerConfig.h

类方法

initWithAppId:appKey:ksFileBundlePath:cacheDir:deviceId

+ (BOOL)initWithAppId:(NSString *_Nonnull)appId
appKey:(NSString *_Nonnull)appKey
ksFileBundlePath:(NSString *_Nonnull)ksFileBundlePath
cacheDir:(NSString *_Nullable)cacheDir
deviceId:(NSString *_Nullable)deviceId;

播放器初始化。app启动后在Appdelegate的didFinishLaunchingWithOptions方法中调用该接口进行 SDK init,内部会完成SDK的安全检验、缓存路径的建立及播放配置的远程下发,此时不会创建播放器实例。

  • 参数
    • appId
      • 说明:和我方服务工程师沟通后获取。
    • appKey
      • 说明:和我方服务工程师沟通后获取。
    • ksFileBundlePath
      • 说明:鉴权文件所在的bundle path。
    • cacheDir
      • 说明:如需自定义缓存路径,cacheDir请传入完整路径; 否则传入nil即可, SDK内部会使用默认的沙盒路径进行创建。
    • deviceId
      • 说明:业务定义的deviceId。
  • 返回值
    • 说明:Yes = 校验成功,可以正常创建播放器;NO = 校验失败,后续如果继续创建播放器会返回nil,请检查传入AppId的正确性。

setEnableAnalytics:

+ (void)setEnableAnalytics:(BOOL)enableAnalytics;

设置是否开启播放信息上报。

  • 参数
    • enableAnalytics
      • 说明:是否开启播放信息上报,默认YES。

setLogBlock:

+ (void)setLogBlocksetLogBlock:(KSMediaPlayerLogBlock _Nullable)logBlock;

设置日志回调。

setDebugMode:

+ (void)setDebugMode:(BOOL)debugMode;

设置DebugModel。

  • 参数
    • debugMode
      • 说明:debugMode,默认NO。

setEnableAudioSession:

+ (void)setEnableAudioSession:(BOOL)enableAudioSession;

设置是否由SDK管理AVAudioSession。

  • 参数
    • enableAudioSession
      • 说明:默认YES ,如果设置为NO,需要业务上层自行处理active、category及interrupt等情况。

setDeviceId:

+ (void)setDeviceId:(NSString *_Nullable)deviceId;

设置deviceId。

  • 参数
    • deviceId
      • 说明:设备唯一ID。

setEnableAdaptiveAdjustByResolution:

+ (void)setEnableAdaptiveAdjustByResolution:(BOOL)enableAdaptiveAdjustByResolution;

是否启用多码率档位按照分辨率动态调整。

  • 参数
    • enableAdaptiveAdjustByResolution
      • 说明:默认YES。

isSupportHDR

+ (BOOL)isSupportHDR;

是否支持HDR。

  • 返回值
    • 说明:YES,支持;NO,不支持。

isSupport4K

+ (BOOL)isSupport4K;

是否支持4K。

  • 返回值
    • 说明:YES,支持;NO,不支持。


KSMediaPlayerManifestUtil

@interface KSMediaPlayerManifestUtil : NSObject

Manifest解析。

类方法

getKSManifest:

+ (KSMediaPlayerManifestDispatchResult *)getKSManifest:(NSString *)manifest;

获取Manifest调度结果。

  • 参数
    • manifest
      • 说明:manifest。


KSMediaPrefetchTask

@interface KSMediaPrefetchTask : NSObject

预加载任务。

  • 位置:KSMediaPrefetchTask.h

成员变量

maxSpeedKbps

@property (nonatomic, assign) int maxSpeedKbps;

预加载的最大下载速度,单位kbps,1k=1024, 默认值为-1,不限速。

connectTimeoutMs

@property (nonatomic, assign) int connectTimeoutMs;

下载请求超时(单位ms),默认3秒。

fullCache

@property (nonatomic, assign) BOOL fullCache;

是否下载全部数据,默认否,如全量下载,预加载任务建议设置较低优先级。

成员方法

initWithVideoId:playToken:priority

- (instancetype _Nullable)initWithVideoId:(nonnull NSString *)videoId
playToken:(nonnull NSString *)playToken
priority:(int)priority;

初始化预加载任务 《适用于快手videoId播放方案》。

  • 参数
    • videoId
      • 说明:快手转码的videoId。
    • playToken
      • 说明:播放凭证,由业务server下发。
    • priority
      • 说明:int值,设置越大,预加载优先级越高。

initWithUrl:videoId:priority

- (instancetype _Nonnull)initWithUrl:(nonnull NSString *)url
videoId:(nonnull NSString *)videoId
priority:(int)priority;

初始化预加载任务。

  • 参数
    • url
      • 说明:资源地址。
    • videoId
      • 说明:业务videoId。
    • priority
      • 说明:int值,设置越大,预加载优先级越高。

initWithManifest:qualityType:videoId:priority

- (instancetype _Nonnull)initWithManifest:(nonnull NSString *)manifest
qualityType:(nullable NSString *)qualityType
videoId:(nonnull NSString *)videoId
priority:(int)priority;

初始化预加载任务<manifest方案>。

  • 参数
    • manifest
      • 说明:manifest。
    • qualityType
    • videoId
      • 说明:业务videoId。
    • priority
      • 说明:int值,设置越大,预加载优先级越高。

getTaskPriority

- (int)getTaskPriority;

获取任务优先级。

  • 返回值
    • 说明:任务优先级。

cancel

- (void)cancel;

取消任务。

getVideoID

- (nonnull NSString *)getVideoID;

获取videoId。

  • 返回值
    • 说明:返回videoId。

getTask

- (id _Nullable )getTask;

获取任务。

  • 返回值
    • 说明:返回当前任务实例。


KSMediaPrefetcher

@interface KSMediaPrefetcher : NSObject

预加载。

  • 位置:KSMediaPrefetcher.h

类方法

shareInstance

+ (instancetype)shareInstance;

获取预加载单例。

成员变量

prefetcherContext

@property (nonatomic, strong) KSMediaPrefetcherContext *prefetcherContext;

该属性用来传入数据统计的必要参数,目前包括一个pageName字段,如预加载的所在页面发生变化,更新prefetcherContext以获取更细粒度的统计。

downloadDelegate

@property (nonatomic, weak) id<KSMediaPlayerDownloadDelegate> _Nullable downloadDelegate;

下载代理。

成员方法

addTask:

- (BOOL)addTask:(KSMediaPrefetchTask *)task;

添加单个任务, 添加完成后自动开始预加载。

addTaskList:

- (void)addTaskList:(NSArray<KSMediaPrefetchTask *> *)taskList;

添加一组任务。

pauseAllTasks

- (void)pauseAllTasks;

暂停所有任务。

resumeAllTasks

- (void)resumeAllTasks;

恢复所有任务。

removeTask:

- (void)removeTask:(KSMediaPrefetchTask *)task;

移除单个任务。

removeAllTasks

- (void)removeAllTasks;

移除所有任务。


KSMediaPrefetcherContext

@interface KSMediaPrefetcherContext : NSObject

预加载统计参数。

  • 位置:KSMediaPrefetcher.h

成员变量

pageName

@property (nonatomic, copy) NSString *pageName;

页面名称。


KSLivePlayer

@interface KSLivePlayer : NSObject

直播播放器。

  • 位置:KSLivePlayer.h

成员变量

playerView

@property (nonatomic, strong, readonly, nullable) UIView *playerView;

播放器视图,用来渲染视频画面,需要添加到父视图。

naturalSize

@property (nonatomic, assign, readonly) CGSize naturalSize;

播放流尺寸。

scalingMode

@property (nonatomic, assign) KSMediaPlayerScalingMode scalingMode;

播放器视图的缩放模式,默认为KSMediaPlayerScalingMode_AspectFit

delegate

@property (nonatomic, nullable,weak) id<KSLivePlayerDelegate> delegate;

代理。

path

@property (nonatomic, copy, readonly, nullable) NSString *path;

播放地址。

shouldMute

@property (nonatomic, assign) BOOL shouldMute;

是否静音,默认NO。

volume

@property (nonatomic, assign) CGFloat volume;

音量。

maxRetryCount

@property (nonatomic, assign) NSInteger maxRetryCount;

最大的重试次数。默认为3。

retryInterval

@property (nonatomic, assign) NSTimeInterval retryInterval;

重试间隔。默认为2s。

enableGLInBackground

@property (nonatomic, assign) BOOL enableGLInBackground;

是否允许再后台渲染。

enablePipModeRender

@property (nonatomic, assign) BOOL enablePipModeRender;

是否允许小窗模式渲染,如果不是在小窗模式一定要关闭。

debugInfo

@property (nonatomic, strong, readonly, nullable) KSLivePlayerDebugInfo *debugInfo;

debugInfo。起播后获取。

成员方法

setDataSource:

- (void)setDataSource:(KSLiveDataSource *_Nonnull)dataSource;

设置数据源。

play

- (void)play;

播放。

pause

- (void)pause;

暂停。

resume

- (void)resume;

继续播放。

retryPlayback

- (void)retryPlayback;

播放重试,可在断网或网络切换导致的播放错误后调用,重试成功后自动从出错位置开始播放。

destroy

- (void)destroy;

销毁播放器资源。

isPrepared

- (BOOL)isPrepared;

播放器是否已经准备完成。

isBuffering

- (BOOL)isBuffering;

是否正在卡顿状态。

isPlaying

- (BOOL)isPlaying;

是否正在播放中。

isRetrying

- (BOOL)isRetrying;

是否正在重试中。

currentPlayTimeVideo

- (NSTimeInterval)currentPlayTimeVideo;

获取当前的播放时间。

thumbnailImageAtCurrentTime

- (UIImage *_Nonnull)thumbnailImageAtCurrentTime;

获取当前帧截图。

  • 返回值
    • 说明:返回当前帧截图的UIImage实例。


KSLiveDataSource

@interface KSLiveDataSource : NSObject

直播数据源。

  • 位置:KSLiveDataSource.h

成员变量

streamId

@property (nonatomic, copy) NSString *streamId;

资源id。

URL

@property (nonatomic, copy) NSURL *URL;

直播URL。

additionalHeaders

@property (nonatomic, copy, nullable) NSDictionary *additionalHeaders;

自定义headers。

类方法

sourceWithURL:streamId:

+ (KSLiveDataSource *)sourceWithURL:(NSURL *)URL streamId:(NSString *)streamId;

创建数据源实例。

  • 参数
    • URL
      • 说明:直播URL。
    • streamId
      • 资源ID。


KSLivePlayerDelegate

@protocol KSLivePlayerDelegate <NSObject>

直播代理。

  • 位置:KSLivePlayerDelegate.h

协议方法

ksLivePlayerDidPrepared:

- (void)ksLivePlayerDidPrepared:(KSLivePlayer *)player;

播放器prepare完毕。

  • 参数
    • player

ksLivePlayerStatusDidChangeToPlaying:

- (void)ksLivePlayerStatusDidChangeToPlaying:(KSLivePlayer *_Nonnull)player;

播放器状态已经变为playing。

  • 参数
    • player

ksLivePlayerStatusDidChangeToStopped:

- (void)ksLivePlayerStatusDidChangeToStopped:(KSLivePlayer *_Nonnull)player;

播放器状态已经变为stopped。

  • 参数
    • player

ksLivePlayerDidRenderFirstVideoFrame:

- (void)ksLivePlayerDidRenderFirstVideoFrame:(KSLivePlayer *_Nonnull)player;

播放器渲染了视频首帧,这个时候通常意味着用户能够看到画面,是用户可见的首屏。整个播放器生命周期只有一次,纯音频没有。

  • 参数
    • player

ksLivePlayerDidRenderFirstAudioFrame:

- (void)ksLivePlayerDidRenderFirstAudioFrame:(KSLivePlayer *_Nonnull)player;

播放器渲染了音频首帧。

  • 参数
    • player

ksLivePlayer:didPlayError

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player didPlayError:(nonnull NSError *)error;

播放器在进行过内部retry后依旧报错后会给出这个回调。

  • 参数
    • player
    • error
      • 说明:错误信息。

ksLivePlayer:naturalSizeIsAvailable:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player naturalSizeIsAvailable:(CGSize)size;

获取到了播放流的尺寸,也会在流尺寸变化的时候回调。

  • 参数
    • player
    • size
      • 说明:视频流的尺寸。

ksLivePlayerDidBeginStall:

- (void)ksLivePlayerDidBeginStall:(KSLivePlayer *_Nonnull)player;

视频开始卡顿。首帧之前不会给出这个回调。

  • 参数
    • player

ksLivePlayerDidEndStall:

- (void)ksLivePlayerDidEndStall:(KSLivePlayer *_Nonnull)player;

视频卡顿结束,可以继续播放。

  • 参数
    • player

ksLivePlayer:pts:seiMethod:seiData:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player pts:(long long)pts seiMethod:(int)method seiData:(nonnull NSData *)data;

sei回调。

  • 参数
    • player
    • pts
      • 说明:视频帧的pts。
    • method
      • 说明:seiData Type。
    • data
      • 说明:seiData。

ksLivePlayer:ksLivePlayer:payloadType:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player seiData:(nonnull NSData *)data payloadType:(int)type;

sei回调。

  • 参数
    • player
    • data
      • 说明:seiData。
    • type
      • 说明:payload。

ksLivePlayer:didLoadAudioData:pts:sampleRate:channels:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player didLoadAudioData:(CMSampleBufferRef _Nonnull )sampleBuffer pts:(int64_t)pts sampleRate:(int)sampleRate channels:(int)channels;

音频数据回调。

  • 参数
    • player
    • sampleBuffer
      • 说明:音频帧数据。
    • pts
      • 说明:pts。
    • sampleRate
      • 说明:采样率。
    • channels
      • 说明:声道。

ksLivePlayer:onReuqestBegin:

- (NSURL *_Nonnull)ksLivePlayer:(KSLivePlayer *_Nonnull)player onReuqestBegin:(nonnull NSString *)url;

请求前URL处理 用于部分直播防盗链场景。该方法会同步阻塞请求。

  • 参数
    • player
    • url
      • 说明:请求url。

ksLivePlayer:fetchDataSource:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player fetchDataSource:(void (^_Nullable)(KSLiveDataSource * _Nullable dataSource))completion;

播放器需要替换源重试。

  • 参数
    • player
    • completion
      • 说明:调用此block触发重试,如果传入dataSource为nil 视为放弃重试。

ksLivePlayer:startRetry:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player startRetry:(NSInteger)number;

开始重试。

  • 参数
    • player
    • number
      • 说明:重试序号。

ksLivePlayer:successRetry:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player successRetry:(NSInteger)number;

重试成功。

  • 参数
    • player
    • number
      • 说明:重试序号。

ksLivePlayer:errorRetry:

- (void)ksLivePlayer:(KSLivePlayer *_Nonnull)player errorRetry:(nonnull NSError *)error;

重试失败。

  • 参数
    • player
    • error
      • 说明:错误信息。


KSLivePlayerDebugInfo

@interface KSLivePlayerDebugInfo : NSObject

直播DebugInfo。

  • 位置:KSLivePlayerDebugInfo.h

成员变量

playUrl

@property(nonatomic, copy) NSString* playUrl;

播放Url。

host

@property(nonatomic, copy) NSString* host;

host。

audioBitrate

@property(nonatomic, assign) int64_t audioBitrate;

音频比特率。

videoBitrate

@property(nonatomic, assign) int64_t videoBitrate;

视频比特率。

videoReadFramesPerSecond

@property(nonatomic, assign) float videoReadFramesPerSecond;

每秒读取帧数。

videoDecodeFramesPerSecond

@property(nonatomic, assign) float videoDecodeFramesPerSecond;

每秒解码帧数。

videoDisplayFramesPerSecond

@property(nonatomic, assign) float videoDisplayFramesPerSecond;

每秒显示帧数。

firstScreenTimeTotal

@property(nonatomic, assign) int firstScreenTimeTotal;

first screen time(total), in milliseconds, include:

InputOpen + StreamFind + CodecOpen + PktReceive + PreDecode + Decode + Render。

firstScreenTimeWaitForPlay

@property(nonatomic, assign) int firstScreenTimeWaitForPlay;

duration of calling start by app, not part of first screen time。

firstScreenTimeInputOpen

@property(nonatomic, assign) int firstScreenTimeInputOpen;

duration of opening input stream(including DnsAnalyze && HttpConnect), part of first screen time。

firstScreenTimeDnsAnalyze

@property(nonatomic, assign) int firstScreenTimeDnsAnalyze;

duration of DNS analyzing, part of first screen time。

firstScreenTimeHttpConnect

@property(nonatomic, assign) int firstScreenTimeHttpConnect;

duration of HTTP connecting, part of first screen time。

firstScreenTimeStreamFind

@property(nonatomic, assign) int firstScreenTimeStreamFind;

duration of finding best a/v streams, part of first screen time。

firstScreenTimeCodecOpen

@property(nonatomic, assign) int firstScreenTimeCodecOpen;

duration of opening codec, part of first screen time。

firstScreenTimePktReceive

@property(nonatomic, assign) int firstScreenTimePktReceive;

duration of receiving first video packet, part of first screen time。

firstScreenTimePreDecode

@property(nonatomic, assign) int firstScreenTimePreDecode;

duration from receiving first pkt to sending it to decoder, part of first screen time。

firstScreenTimeDecode

@property(nonatomic, assign) int firstScreenTimeDecode;

duration of decoding first video frame, part of first screen time。

firstScreenTimeRender

@property(nonatomic, assign) int firstScreenTimeRender;

duration of rendering first video frame, part of first screen time。

totalDataSize

@property(nonatomic, assign) int64_t totalDataSize;

size of total audio and video data since playing。

blockCnt

@property(nonatomic, assign) int blockCnt;

buffer loading count。

blockDuration

@property(nonatomic, assign) int64_t blockDuration;

buffer loading in ms。

videoBlockCnt

@property(nonatomic, assign) int videoBlockCnt;

count of video block。

videoBlockDuration

@property(nonatomic, assign) int videoBlockDuration;

duration of video block。

speedupThresholdMs

@property(nonatomic, assign) int speedupThresholdMs;

speed up threshold。

audioBufferTimeLength

@property(nonatomic, assign) int audioBufferTimeLength;

audio queue time length in ms。

videoBufferTimeLength

@property(nonatomic, assign) int videoBufferTimeLength;

video queue time length in ms。

videoDelayRender

@property(nonatomic, assign) int videoDelayRender;

video render delay, calculated with PTS and WallClock. unit: milliseconds。

videoDecoder

@property(nonatomic, copy) NSString* videoDecoder;

video decoder info。

audioDecoder

@property(nonatomic, copy) NSString* audioDecoder;

audio decoder info。

hostInfo

@property(nonatomic, copy) NSString* hostInfo;

live host info。

memoryInfo

@property(nonatomic, copy) NSString* memoryInfo;

memory info。

cpuInfo

@property(nonatomic, copy) NSString* cpuInfo;

cpu info。


ENUMS

SDK中的枚举。

KSMediaPlayerFinishReason

typedef NS_ENUM(NSInteger, KSMediaPlayerFinishReason) {
...
};

播放结束原因。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerFinishReason_Ended

播放完成。

  • 值:0
KSMediaPlayerFinishReason_PlaybackError

播放错误。

  • 值:1
KSMediaPlayerFinishReason_UserExited

用户关闭。

  • 值:2

KSMediaPlayerUrlRefreshReason

typedef NS_ENUM(NSInteger, KSMediaPlayerUrlRefreshReason) {
...
};

需要系统新的URL以继续播放的原因。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerUrlRefreshReason_Unknown

未知。

  • 值:0
KSMediaPlayerUrlRefreshReason_Http403

403错误。

  • 值:1

KSMediaPlayerDownloadStopReason

typedef NS_ENUM(NSInteger, KSMediaPlayerDownloadStopReason) {
...
};

下载结束原因。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerDownloadStopReason_Unknown

未知。

  • 值:0
KSMediaPlayerDownloadStopReason_Finished、

下载完成。

  • 值:1
KSMediaPlayerDownloadStopReason_Cancelled

下载取消。

  • 值:2
KSMediaPlayerDownloadStopReason_Failed

下载失败。

  • 值:3
KSMediaPlayerDownloadStopReason_Timeout

下载超时。

  • 值:4
KSMediaPlayerDownloadStopReason_NoContentLength

Response Header没有content-length。

  • 值:5
KSMediaPlayerDownloadStopReason_ContentLengthInvalid

content-length不合法。

  • 值:6
KSMediaPlayerDownloadStopReason_ByteRangeInvalid

分段下载range不合法。

  • 值:7
KSMediaPlayerDownloadStopReason_ResolveHostFail

解析host失败。

  • 值:8

KSMediaPlayerDownloadState

typedef NS_ENUM(NSInteger, KSMediaPlayerDownloadState) {
...
};

播放器下载状态。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerDownloadState_Unknown

未知。

  • 值:-1
KSMediaPlayerDownloadState_Started

开始下载。

  • 值:0
KSMediaPlayerDownloadState_Paused

暂停下载。

  • 值:1
KSMediaPlayerDownloadState_Waiting

等待。

  • 值:2
KSMediaPlayerDownloadState_Finished

下载完成。

  • 值:3
KSMediaPlayerDownloadState_Cancelled

下载取消。

  • 值:4
KSMediaPlayerDownloadState_Failed

下载失败。

  • 值:5

KSMediaPlayerScalingMode

typedef NS_ENUM(NSInteger, KSMediaPlayerScalingMode) {
...
};

播放器画面缩放模式。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerScalingMode_None

不确定缩放类型。

  • 值:0
KSMediaPlayerScalingMode_AspectFit

等比缩放以显示整个视频画面,画面上下或者左右有可能有空白。

  • 值:1
KSMediaPlayerScalingMode_AspectFill

等比缩放使画面充满画布,画面上面或左右有可能会出现剪裁。

  • 值:2
KSMediaPlayerScalingMode_Fill

缩放是画面充满画布,画面有可能会被压缩或者拉伸。

  • 值:3

KSMediaPlayerPlaybackState

typedef NS_ENUM(NSUInteger, KSMediaPlayerPlaybackState) {
...
};

播放器播放状态。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerPlaybackState_Inited

初始化状态。

  • 值:0
KSMediaPlayerPlaybackState_Prepared

准备播放状态。

  • 值:1
KSMediaPlayerPlaybackState_Playing

播放状态。

  • 值:2
KSMediaPlayerPlaybackState_Paused

暂停状态。

  • 值:3
KSMediaPlayerPlaybackState_Stopped

停止播放状态。

  • 值:4
KSMediaPlayerPlaybackState_Seek

Seek状态。

  • 值:5
KSMediaPlayerPlaybackState_Complete

完成播放状态,在播放器设置为单次播放的时候,播放完成为此状态。

  • 值:6

KSMediaPlayerLoadState

typedef NS_OPTIONS(NSUInteger, KSMediaPlayerLoadState) {
...
};

播放器加载状态。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerLoadState_Unknown

未知。

  • 值:0
KSMediaPlayerLoadState_Playable

可以播放。

  • 值: 1 << 0
KSMediaPlayerLoadState_PlaythroughOK

结束卡顿。

  • 值:1 << 1
KSMediaPlayerLoadState_Stalled

开始卡顿。

  • 值:1 << 2

KSMediaPlayerEvent

typedef NS_ENUM(NSUInteger, KSMediaPlayerEvent) {
...
};

播放器事件。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerEvent_Unknown

未知。

  • 值:0
KSMediaPlayerEvent_IsPrepared

播放器准备完成,可以播放。

如果shouldAutoplay=NO, 需要在- (void)mediaPlayer:(KSMediaPlayer *_Nullable)mediaPlayer eventChanged:(KSMediaPlayerEvent)event代理中收到次事件回调之后调用- (void)play方法播放。

  • 值:1
KSMediaPlayerEvent_FirstVideoFrameRender

第一帧视频开始渲染。

  • 值:2
KSMediaPlayerEvent_FirstAudioFrameRender

第一帧音频开始渲染。

  • 值:3
KSMediaPlayerEvent_HostSwitchStart

开始切换host。

  • 值:4
KSMediaPlayerEvent_HostSwitchFinish

切换host完成。

  • 值:5
KSMediaPlayerEvent_SeekComplete

seek完成。

  • 值:6
KSMediaPlayerEvent_PlayToEnd

播放完成。

  • 值:7
KSMediaPlayerEvent_FirstVideoFrameRenderedAfterSeek

seek后视频首帧渲染完成。

  • 值:8
KSMediaPlayerEvent_FirstAudioFrameRenderedAfterSeek

seek后音频首帧渲染完成。

  • 值:9
KSMediaPlayerEvent_CreateNextPlayerAvailable

可以创建下一个播放器,这个地方做预加载操作。

  • 值:10
KSMediaPlayerEvent_VideoQualitySwitchStart

开始切换清晰度。

  • 值:11
KSMediaPlayerEvent_VideoQualitySwitchFinish

切换清晰度完成。

  • 值:12
KSMediaPlayerEvent_DownloadRetry

内部下载重试。

  • 值:13
KSMediaPlayerEvent_VideoResolutionChange

视频尺寸更新。

  • 值:14

KSMediaPlayerScene

typedef NS_ENUM(NSInteger, KSMediaPlayerScene) {
...
};

播放场景。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerScene_Unknown

未知。

  • 值:0
KSMediaPlayerScene_SlideTopDown

上下滑场景。

  • 值:1
KSMediaPlayerScene_ClickPush

点击Push场景。

  • 值:2
KSMediaPlayerScene_ScrollList

滚动列表场景。

  • 值:3

KSMediaPlayerNetworkType

typedef NS_ENUM(NSInteger, KSMediaPlayerNetworkType) {
...
};

网络类型。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerNetworkType_Unknown

未知。

  • 值:0
KSMediaPlayerNetworkType_Mobile

蜂窝网络。

  • 值:1
KSMediaPlayerNetworkType_WIFI

wifi。

  • 值:2

KSMediaPlayerInitType

typedef NS_ENUM(NSInteger, KSMediaPlayerInitType) {
...
};

播放器初始化类型。

  • 位置:KSMediaPlayerVodConfigration.h

枚举值

KSMediaPlayerInitType_URL

url。

  • 值:0
KSMediaPlayerInitType_Manifest

Manifest

  • 值:1
KSMediaPlayerInitType_VideoId

VideoId

  • 值:2

KSMediaPlayerInteractiveMode

typedef NS_ENUM(NSInteger, KSMediaPlayerInteractiveMode) {
...
};

播放器VR交互类型。

  • 位置:KSMediaPlayerTypeDefines.h

枚举值

KSMediaPlayerInteractiveModeMotion

陀螺仪。

  • 值:0
KSMediaPlayerInteractiveModeTouch

手势。

  • 值:1
KSMediaPlayerInteractiveModeMotionWithTouch

陀螺仪加手势。

  • 值:2

KSMediaPlayerLogLevel

typedef NS_ENUM(NSInteger, KSMediaPlayerLogLevel) {
...
};

日志级别。

枚举值

KSMediaPlayerLogLevelDebug

debug级别。

  • 值:0
KSMediaPlayerLogLevelInfo

info级别。

  • 值:1
KSMediaPlayerLogLevelWarn

warning级别。

  • 值:2
KSMediaPlayerLogLevelError

error级别。

  • 值:3
KSMediaPlayerLogLevelSlient

Slient级别。

  • 值:4


CONSTS

SDK中的常量

kKSMediaPlayerVideoQualiType

视频档位

  • 位置:KSMediaPlayerTypeDefines.h

kKSMediaPlayerVideoQualiType_VR180

static NSString *const kKSMediaPlayerVideoQualiType_VR180       = @"vr180";

vr180。

kKSMediaPlayerVideoQualiType_VR360

static NSString *const kKSMediaPlayerVideoQualiType_VR360       = @"vr360";

vr360。

kKSMediaPlayerVideoQualiType_HDR

static NSString *const kKSMediaPlayerVideoQualiType_HDR         = @"hdr";

hdr。

kKSMediaPlayerVideoQualiType_SDR_plus

static NSString *const kKSMediaPlayerVideoQualiType_SDR_plus    = @"sdr+";

sdr+。

kKSMediaPlayerVideoQualiType_1080p

static NSString *const kKSMediaPlayerVideoQualiType_1080p       = @"1080p";

1080p。

kKSMediaPlayerVideoQualiType_720p

static NSString *const kKSMediaPlayerVideoQualiType_720p        = @"720p";

720p。

kKSMediaPlayerVideoQualiType_576p

static NSString *const kKSMediaPlayerVideoQualiType_576p        = @"576p";

576p。

kKSMediaPlayerVideoQualiType_540p

static NSString *const kKSMediaPlayerVideoQualiType_540p        = @"540p";

540p。

kKSMediaPlayerVideoQualiType_480p

static NSString *const kKSMediaPlayerVideoQualiType_480p        = @"480p";

480p。


DEFINES

SDK中的定义:typedef、宏定义...

KSMediaPlayerCacheKeyGenerate

typedef NSString * _Nonnull (^KSMediaPlayerCacheKeyGenerate)(NSString * _Nonnull url);

生成cacheKey生成方法block。

  • 位置:KSMediaPlayerCache.h。
  • 参数
    • url
      • 说明:视频URL。

KSMediaPlayerLogBlock

typedef void (^KSMediaPlayerLogBlock)(KSMediaPlayerLogLevel level, NSString *info);

统一Log回调block。

  • 位置:KSMediaPlayerTypeDefines.h
  • 参数



































































上一篇:快速开始下一篇:错误码查询
该篇文档内容是否对您有帮助?
有帮助没帮助