KSYMoviePlayerController Class Reference

Inherits from NSObject
Conforms to KSYMediaPlayback
Declared in KSYMoviePlayerController.h

Overview

KSYMoviePlayerController

– initWithContentURL:

初始化播放器并设置播放地址

- (instancetype)initWithContentURL:(NSURL *)url

Parameters

url

视频播放地址,该地址可以是本地地址或者服务器地址.

Return Value

返回KSYMoviePlayerController对象,该对象的视频播放地址ContentURL已经初始化。此时播放器状态为MPMoviePlaybackStateStopped.

返回KSYMoviePlayerController 实例

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

该方法初始化了播放器,并设置了播放地址。但是并没有将播放器对视频文件进行初始化,需要调用 prepareToPlay方法对视频文件进行初始化。

当前支持的协议包括:

  • http
  • rtmp
  • file, 本地文件
  • rtsp

Warning: 必须调用该方法进行初始化,不能调用init方法。

Declared In

KSYMoviePlayerController.h

– initWithContentURL:backupURL:

初始化播放器并设置主播放地址和备用播放地址

- (instancetype)initWithContentURL:(NSURL *)url backupURL:(NSURL *)backupURL

Parameters

url

视频主播放地址,使用HEVC流地址.

backURL

视频备用播放地址,使用H264流地址

Return Value

返回KSYMoviePlayerController对象,该对象的视频播放地址ContentURL已经初始化。此时播放器状态为MPMoviePlaybackStateStopped.

Availability

Available in KSYMoviePlayerController 3.0.1 and later.

Discussion

如果设置了备用播放地址,则会在设备不支持硬解播放HEVC流时切换到备用播放地址进行播放

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– initWithContentURL:sharegroup:

初始化播放器并设置播放地址

- (instancetype)initWithContentURL:(NSURL *)url sharegroup:(EAGLSharegroup *)sharegroup

Parameters

url

视频播放地址,该地址可以是本地地址或者服务器地址.

sharegroup

opengl的sharegroup, 用于共享视频渲染texture

Return Value

返回KSYMoviePlayerController对象,该对象的视频播放地址ContentURL已经初始化。此时播放器状态为MPMoviePlaybackStateStopped.

Availability

Available in KSYMoviePlayerController 1.8.7 and later.

Discussion

如果要获取视频渲染时的texture时(设置textureBlock属性),需要使用此初始化函数,将EAGLSharegroup对象作为参数传入,否则texture无法在多个OpenGL的context中共享使用

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– initWithContentURL:fileList:sharegroup:

初始化播放器并设置播放地址

- (instancetype)initWithContentURL:(NSURL *)url fileList:(NSArray *)fileList sharegroup:(EAGLSharegroup *)sharegroup

Parameters

url

视频播放的绝对地址,可以设置为nil;

sharegroup

opengl的sharegroup, 用于共享视频渲染texture, 可以设置为nil

list

分片列表,可以设置为nil

Return Value

返回KSYMoviePlayerController对象,该对象的视频播放地址ContentURL已经初始化。此时播放器状态为MPMoviePlaybackStateStopped.

Availability

Available in KSYMoviePlayerController 2.1.0 and later.

Discussion

该方法更适用于点播

url和list的设置逻辑:

  • url和fileList不能同时为空
  • url为nil,fileList不为nil时,播放器取list中的地址进行播放
  • url不nil,fileList为nil时,播放器取baseURL进行播放
  • url和fileList都不为nil,播放会认为url是绝对地址,list为相对地址,找到url中的最后一个'/‘进行url/list 拼接后播放

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  contentURL

正在播放的视频文件的URL地址,该地址可以是本地地址或者服务器地址。

@property (nonatomic, readonly) NSURL *contentURL

Availability

Available in KSYMoviePlayerController 1.0 and later.

Declared In

KSYMoviePlayerController.h

  fileList

正在播放的视频文件的list列表

@property (nonatomic, readonly) NSArray *fileList

Availability

Available in KSYMoviePlayerController 2.1.0 and later.

Declared In

KSYMoviePlayerController.h

  view

包含视频播放内容的VIEW(只读)。

@property (nonatomic, readonly) UIView *view

Discussion

view的使用逻辑:

  • 可以通过frame设置view大大小
  • 使用scalingMode 可以更改视频内容在VIEW中的显示情况

Declared In

KSYMoviePlayerController.h

  controlStyle

该属性当前不支持

@property (nonatomic) MPMovieControlStyle controlStyle

Discussion

Warning: 该属性当前不支持

Declared In

KSYMoviePlayerController.h

  playbackState

当前播放器的播放状态(只读)。

@property (nonatomic, readonly) MPMoviePlaybackState playbackState

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

可以通过该属性获取视频播放情况:


typedef NS_ENUM(NSInteger, MPMoviePlaybackState) {
MPMoviePlaybackStateStopped,           // 播放停止
MPMoviePlaybackStatePlaying,           // 正在播放
MPMoviePlaybackStatePaused,            // 播放暂停
MPMoviePlaybackStateInterrupted,       // 播放被打断
MPMoviePlaybackStateSeekingForward,    // 向前seeking中
MPMoviePlaybackStateSeekingBackward    // 向后seeking中
} NS_DEPRECATED_IOS(3_2, 9_0);

通知:

  • MPMoviePlayerPlaybackDidFinishNotification,当播放完成时提供通知
  • MPMoviePlayerPlaybackStateDidChangeNotification,当播放状态变化时提供通知

Declared In

KSYMoviePlayerController.h

  loadState

当前网络加载情况

@property (nonatomic, readonly) MPMovieLoadState loadState

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

可以通过该属性获取视频加载情况:


typedef NS_OPTIONS(NSUInteger, MPMovieLoadState) {
MPMovieLoadStateUnknown        = 0,        // 加载情况未知
MPMovieLoadStatePlayable       = 1 << 0,   // 加载完成,可以播放
MPMovieLoadStatePlaythroughOK  = 1 << 1,   // 加载完成,如果shouldAutoplay为YES,将自动开始播放
MPMovieLoadStateStalled        = 1 << 2,   // 如果视频正在加载中
} NS_DEPRECATED_IOS(3_2, 9_0);

通知:

  • MPMoviePlayerLoadStateDidChangeNotification,当加载状态变化时提供通知

Declared In

KSYMoviePlayerController.h

  shouldAutoplay

播放视频时是否需要自动播放,默认值为YES。

@property (nonatomic) BOOL shouldAutoplay

Availability

Available in KSYMoviePlayerController 1.0 and later.

Declared In

KSYMoviePlayerController.h

  scalingMode

当前缩放显示模式。

@property (nonatomic) MPMovieScalingMode scalingMode

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

当前支持四种缩放模式:


typedef NS_ENUM(NSInteger, MPMovieScalingMode) {
MPMovieScalingModeNone,       // 无缩放
MPMovieScalingModeAspectFit,  // 同比适配,某个方向会有黑边
MPMovieScalingModeAspectFill, // 同比填充,某个方向的显示内容可能被裁剪
MPMovieScalingModeFill        // 满屏填充,与原始视频比例不一致
} NS_DEPRECATED_IOS(2_0, 9_0);

Declared In

KSYMoviePlayerController.h

  duration

当前视频总时长

@property (nonatomic, readonly) NSTimeInterval duration

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

视频总时长,单位是秒。

  • 如果是直播视频源,总时长为0.
  • 如果该信息未知,总时长默认为0.

Declared In

KSYMoviePlayerController.h

  playableDuration

当前视频可播放长度

@property (nonatomic, readonly) NSTimeInterval playableDuration

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

视频可播放时长,单位是秒。

  • currentPlaybackTime 标记的是播放器当前已播放的时长。
  • playableDuration 标记的是播放器缓冲的时间,会稍大于currentPlaybackTime,与currentPlaybackTime的差值则是缓冲长度。
  • duration 是视频总时长。

Declared In

KSYMoviePlayerController.h

  shouldEnableKSYStatModule

数据统计,默认开启

@property (nonatomic, assign) BOOL shouldEnableKSYStatModule

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

可开关

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  naturalSize

当前视频宽高

@property (nonatomic, readonly) CGSize naturalSize

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

获取信息

  • 监听MPMovieNaturalSizeAvailableNotification
  • 播放过程中,宽高信息可能会产生更改

Declared In

KSYMoviePlayerController.h

  naturalRotate

当前视频自带旋转(逆时针)角度

@property (nonatomic, readonly) NSInteger naturalRotate

Availability

Available in KSYMoviePlayerController 2.2.0 and later.

Discussion

rotateDegress 是人为旋转角度,naturalRotate是文件meta信息中自带的旋转角度

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  logBlock

获取播放器日志

@property (nonatomic, copy) void ( ^ ) ( NSString *logJson ) logBlock

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

相关字段说明请联系金山云技术支持

Declared In

KSYMoviePlayerController.h

  bufferTimeMax

bufferTimeMax指定播放时的缓冲时长,单位秒

@property NSTimeInterval bufferTimeMax

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

对于直播流,该属性用于直播延时控制;对于点播流,该属性用于缓冲时长控制

  • 直播流该属性默认为2秒,设置为0或负值时为关闭直播追赶
  • 点播流该属性默认为3600秒,且与bufferSizeMax同时生效,两者取小值

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  bufferSizeMax

bufferSizeMax指定点播播放时的最大缓冲,单位MB

@property NSUInteger bufferSizeMax

Availability

Available in KSYMoviePlayerController 2.0 and later.

Discussion

取值大小为0-100,超过此区间时将使用默认值15。

  • 该属性仅对点播视频有效;
  • 默认值为15。

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  readSize

已经加载的数据大小

@property (nonatomic, readonly) double readSize

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

已经加载的数据大小,单位是兆。

  • 已经加载的全部数据大小,包括音频和视频。
  • 数据包括已经播放的,和当前的cache数据。

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  bufferEmptyDuration

buffer为空时,拉取数据所耗的时长

@property (nonatomic, readonly) NSTimeInterval bufferEmptyDuration

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

当buffer为空时,开始统计。单位为秒。

  • 当MPMoviePlayerLoadStateDidChangeNotification 通知发起;
  • MPMovieLoadState状态为MPMovieLoadStateStalled 开始计时;
  • MPMovieLoadState状态为MPMovieLoadStatePlayable 或者 MPMovieLoadStatePlaythroughOK时,结束计时;

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  bufferEmptyCount

发起cache的次数

@property (nonatomic, readonly) NSInteger bufferEmptyCount

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

当buffer为空时,统计一次,统计的条件为

  • 当MPMoviePlayerLoadStateDidChangeNotification 通知发起
  • MPMovieLoadState 状态为MPMovieLoadStateStalled

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  serverAddress

视频流server ip

@property (nonatomic, readonly) NSString *serverAddress

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

当收到prepared后,即可以查询当前连接的视频流server ip

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  clientIP

客户端出口IP

@property (nonatomic, readonly) NSString *clientIP

Availability

Available in KSYMoviePlayerController 1.5.0.1 and later.

Discussion

当收到prepared后,即可以查询客户端的出口IP

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  localDNSIP

客户端LocalDNSIP

@property (nonatomic, readonly) NSString *localDNSIP

Availability

Available in KSYMoviePlayerController 1.5.0.1 and later.

Discussion

当收到prepared后,即可以查询客户端的LocalDNSIP

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  qosInfo

视频流qos信息

@property (nonatomic, strong) KSYQosInfo *qosInfo

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

在播放过程中,即可以查询当前连接的视频流qos信息

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– thumbnailImageAtCurrentTime

截图

- (UIImage *)thumbnailImageAtCurrentTime

Return Value

当前时刻的视频UIImage 图像

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  shouldEnableVideoPostProcessing

是否开启视频后处理

@property (nonatomic) BOOL shouldEnableVideoPostProcessing

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

默认是关闭

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  videoDecoderMode

是否开启硬件解码

@property (nonatomic, assign) MPMovieVideoDecoderMode videoDecoderMode

Availability

Available in KSYMoviePlayerController 1.3.1 and later.

Discussion

如果系统版本高于8.0,默认开启硬件解码;否则,默认使用软件解码

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  shouldMute

是否静音

@property (nonatomic) BOOL shouldMute

Availability

Available in KSYMoviePlayerController 1.3.1 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  shouldHideVideo

是否隐藏视频

@property (nonatomic) BOOL shouldHideVideo

Availability

Available in KSYMoviePlayerController 1.6.1 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  shouldLoop

是否循环播放

@property (nonatomic) BOOL shouldLoop

Availability

Available in KSYMoviePlayerController 1.3.1 and later.

Discussion

默认不循环

  • 只在prepareToPlay 调用前设置生效;
  • 只有点播生效,直播场景请勿设置

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  videoDataBlock

视频数据回调

@property (nonatomic, copy) KSYPlyVideoDataBlock videoDataBlock

Availability

Available in KSYMoviePlayerController 1.3.3 and later.

Discussion

调用prepareToPlay方法之前设置生效,回调数据为同步完成后的数据

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  audioDataBlock

音频数据回调

@property (nonatomic, copy) KSYPlyAudioDataBlock audioDataBlock

Availability

Available in KSYMoviePlayerController 1.3.3 and later.

Discussion

调用prepareToPlay方法之前设置生效,回调数据为同步完成后的数据

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  messageDataBlock

消息数据回调

@property (nonatomic, copy) KSYPlyMessageDataBlock messageDataBlock

Availability

Available in KSYMoviePlayerController 1.3.3 and later.

Discussion

调用prepareToPlay方法之前设置生效,回调数据为同步完成后的数据

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  textureBlock

视频图像texture回调

@property (nonatomic, copy) KSYPlyTextureBlock textureBlock

Availability

Available in KSYMoviePlayerController 1.8.7 and later.

Discussion

调用prepareToPlay方法之前设置生效

Warning: 该方法由金山云引入,不是原生系统接口。使用该属性时需要在初始化时使用initWithContentURL:sharegroup:函数初始化播放器,否则该属性无效

Declared In

KSYMoviePlayerController.h

  rotateDegress

指定逆时针旋转角度,只能是0/90/180/270, 不符合上述值不进行旋转

@property (nonatomic) int rotateDegress

Availability

Available in KSYMoviePlayerController 1.4.1 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  mirror

指定视频是否镜像显示

@property (nonatomic) BOOL mirror

Availability

Available in KSYMoviePlayerController 1.8.4 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  superFastPlay

快速播放

@property (nonatomic) BOOL superFastPlay

Availability

Available in KSYMoviePlayerController 1.5.2 and later.

Discussion

默认不快速播放

  • 非固定倍速下的快速播放,而是全速将解码器中的数据显示出来
  • 当播放文件存在音频时该功能生效;
  • 播放前或者播放过程中均可配置;
  • 开启快速播放后,不在输出声音,但是audioDataBlock中依然会上抛pcm数据
  • 开启快速播放后,可能会导致播放器不停的进入/结束缓冲状态;

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  deinterlaceMode

是否进行视频反交错处理

@property (nonatomic) MPMovieVideoDeinterlaceMode deinterlaceMode

Availability

Available in KSYMoviePlayerController 1.7.2 and later.

Discussion

默认不进行反交错处理

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  bInterruptOtherAudio

是否打断其他后台的音乐播放

@property (nonatomic) BOOL bInterruptOtherAudio

Availability

Available in KSYMoviePlayerController 1.5.3 and later.

Discussion

也可以理解为是否允许和其他音频同时播放

YES:开始播放时,会打断其他的后台播放音频,也会被其他音频播放打断

NO: 可以与其他后台播放共存,相互之间不会被打断

默认为YES

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  audioPan

立体声平衡模式,默认立体声输出,取值范围为[-1.0, 1.0]

@property (nonatomic) float audioPan

Availability

Available in KSYMoviePlayerController 2.0.3 and later

Discussion

针对单声道或双声道音频播放配置时有效,多声道音频播放配置无效

需要佩戴耳机以区分左右声道,手机外放无效果

prepareToPlay前配置无效,应在播放过程中动态配置

该值为0.0时,左右声道都有声音,< 0时,右声道声音小于左声道;> 0时,左声道声音小于右声道

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  networkDetectURL

用于检测网络连通性的地址,默认使用地址为“www.baidu.com”

@property (nonatomic, readwrite) NSString *networkDetectURL

Availability

Available in KSYMoviePlayerController 2.1.1 and later

Discussion

用户可自定义地址,但不可设置无效地址,如果不清楚规则,建议使用默认值

设置为nil时,则关闭网络连通性的检测, networkStatus属性值为-1

建议在创建对象后设置一次或不设置,不推荐在播放过程中动态配置

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

  networkStatus

网络连通状态

@property (nonatomic, readonly) KSYNetworkStatus networkStatus

Availability

Available in KSYMoviePlayerController 2.1.1 and later

Discussion

使用 www.kingsoft.com 作为检测目标

如果networkStatus不等于KSYNetworkStatus枚举中的任意值,则表明当前尚未监测到网络状态

Declared In

KSYMoviePlayerController.h

  playbackSpeed

设置播放速度,取值范围(0.5~2.0),默认1.0

@property (nonatomic) float playbackSpeed

Availability

Available in KSYMoviePlayerController 2.4.1 and later.

Discussion

Warning: 该属性由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setTimeout:readTimeout:

timeout指定拉流超时时间,单位是秒

- (void)setTimeout:(int)prepareTimeout readTimeout:(int)readTimeout

Parameters

prepareTimeout

建立链接超时时间,默认值是10秒

readTimeout

拉流超时时间,默认值是30秒

Availability

Available in KSYMoviePlayerController 1.3.1 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setVolume:rigthVolume:

setVolume指定播放器输出音量

- (void)setVolume:(float)leftVolume rigthVolume:(float)rightVolume

Parameters

leftVolume

left volume scalar [0~2.0f]

rightVolume

right volume scalar [0~2.0f]

Availability

Available in KSYMoviePlayerController 1.3.3 and later.

Discussion

使用说明

  • 输入参数超出范围将失效
  • 输出到speaker时需同时设置左右音量为有效值 如:leftVolume = rightVolume = 0.5f

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– getVersion

获取sdk版本

- (NSString *)getVersion

Availability

Available in KSYMoviePlayerController 1.3.1 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– getMetadata

获取播放Meta信息

- (NSDictionary *)getMetadata

Availability

Available in KSYMoviePlayerController 1.3.1 and later.

Discussion

收到MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知后才能获取到数据

暂时支持的查询包括

  • kKSYPLYHttpFirstDataTime 建链成功后到收到第一个包所消耗的时间
  • kKSYPLYHttpConnectTime 链接服务器所消耗的时间
  • kKSYPLYHttpAnalyzeDns 解析DNS所消耗的时间

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– getMetadata:

获取播放Meta

- (NSDictionary *)getMetadata:(MPMovieMetaType)metaType

Availability

Available in KSYMoviePlayerController 2.5.2 and later.

Discussion

收到MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知后才能获取到数据

暂时支持的查询包括

  • 当metaType为MPMovieMetaType_Media时,所得到的结果与getMetadata方法相同
  • 当metaType为其他类型时,得到的当前播放的视频/音频/字幕流的meta信息

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– isPlaying

当前播放器是否在播放

- (BOOL)isPlaying

Return Value

获取playbackState信息,如果当前状态为MPMoviePlaybackStatePlaying,则返回TRUE。其他情况返回FASLE。

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– reload:

重新启动拉流

- (void)reload:(NSURL *)aUrl

Parameters

aUrl

视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

调用场景如下:

  • 当播放器调用方发现卡顿时,可以主动调用
  • 当估计出更优质的拉流ip时,可以主动调用
  • 当发生WiFi/3G网络切换时,可以主动调用
  • 当播放器回调体现播放完成时,可以主动调用
  • 播放器SDK不会自动调用reload功能

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– reload:flush:

重新启动拉流

- (void)reload:(NSURL *)aUrl flush:(BOOL)flush

Parameters

aUrl

视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址

flush

是否清除上一个url的缓冲区内容,该值为NO不清除,为YES则清除

Availability

Available in KSYMoviePlayerController 1.0 and later.

Discussion

说明:

  • 如果在直播过程中使用reload,希望达到续播的效果,建议flush值设为NO

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– reload:flush:mode:

重新启动拉流

- (void)reload:(NSURL *)aUrl flush:(bool)flush mode:(MPMovieReloadMode)mode

Parameters

aUrl

视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址

flush

是否清除上一个url的缓冲区内容,该值为NO不清除,为YES则清除

mode

配置reload后的加载模式,该值为MPMovieReloadModeFast则启用加速播放;若为MPMovieReloadModeAccurate则启用精准查找模式播放

Availability

Available in KSYMoviePlayerController 1.6.3 and later.

Discussion

说明:

  • 如果在直播过程中使用reload,希望达到续播的效果,建议flush值设为NO
  • 设置为MPMovieReloadMode_Fast模式可以加快起播速度,但在码流音视频交织较差的情况下,可能无法检测到所有音视频流
  • 设置为MPMovieReloadMode_Accurate模式起播速度会有所下降,但可以保证检测到所有音视频流
  • 如果是监听到MPMoviePlayerSuggestReloadNotification消息后调用reload接口,则mode模式一定要设置为MPMovieReloadMode_Accurate,其它情况可根据实际使用场景自行配置

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– getCurrentPts

获取当前播放的pts

- (NSTimeInterval)getCurrentPts

Availability

Available in KSYMoviePlayerController 1.5.0.0 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setUrl:

设置播放url

- (void)setUrl:(NSURL *)url

Parameters

url

视频播放地址,该地址可以是本地地址或者服务器地址.

Availability

Available in KSYMoviePlayerController 1.6.2 and later.

Discussion

使用说明

  • 通常用于使用一个对象进行多次播放的场景
  • 调用reset接口停止播放后使用该接口来设置下一次播放地址
  • 需要在prepareToPlay方法之前设置
  • v2.1.0及之后的版本,该url不可设置为nil;之前的版本设置为nil,会播放上一次的播放地址

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setUrl:fileList:

设置播放url

- (void)setUrl:(NSURL *)url fileList:(NSArray *)fileList

Parameters

fileList

分片列表

baseURL

视频播放的绝对地址,该地址可以是本地地址或者服务器地址

Availability

Available in KSYMoviePlayerController 2.1.0 and later.

Discussion

url和fileList不可同时为nil

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– reset:

重置播放器

- (void)reset:(BOOL)holdLastPic

Parameters

holdLastPic

是否保留最后一帧

Availability

Available in KSYMoviePlayerController 1.6.2 and later.

Discussion

使用说明

  • 通常用于使用一个对象进行多次播放的场景
  • 该方法可以停止播放,但是不会销毁播放器
  • 调用该方法后可以通过调用stop方法来销毁播放器
  • 如果使用一个对象进行多次播放,需要在reset后使用setUrl方法设置下次播放地址

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– seekTo:accurate:

跳转到指定位置播放

- (void)seekTo:(double)pos accurate:(BOOL)isAccurate

Parameters

pos

跳转到的位置,单位秒

isAccurate

是否精确跳转,NO时等同于currentPlaybackTime, YES时为精确跳转

Availability

Available in KSYMoviePlayerController 1.9.1 and later.

Discussion

媒体文件总时长较小且关键帧间隔较大时,需要使用精确跳转, 总时长较大或者不需要精确定位时可以使用currentPlaybackTime或者将isAccurate设置为NO进行跳转

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setHttpHeaders:

发送http请求时需要header带上的字段

- (void)setHttpHeaders:(NSDictionary *)headers

Parameters

header

自定义http header字段

Availability

Available in KSYMoviePlayerController 2.0.3 and later.

Discussion

在调用prepareToPlay方法前调用生效

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setTrackSelected:selected:

设置开启/关闭指定的媒体轨道

- (void)setTrackSelected:(NSInteger)trackIndex selected:(BOOL)selected

Parameters

trackIndex
  • 轨道的stream index
selected
  • 开启/关闭指定媒体轨道

Availability

Available in KSYMoviePlayerController 2.5.2 and later.

Discussion

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h

– setExtSubtitleFilePath:

设置本地字幕文件的地址

- (void)setExtSubtitleFilePath:(NSString *)subtitleFilePath

Parameters

subtitleFilePath

本地字幕文件地址

Availability

Available in KSYMoviePlayerController 2.5.2 and later.

Discussion

在播放过程中调用

Warning: 该方法由金山云引入,不是原生系统接口

Declared In

KSYMoviePlayerController.h