KSYMediaPlayback Protocol Reference

Declared in KSYMediaPlayback.h

Overview

KSYMediaPlayback为播放内核KSYMoviePlayerController提供播放控制功能。

联系我们

当本文档无法帮助您解决在开发中遇到的具体问题,请通过以下方式联系我们,金山云工程师会在第一时间回复您。

E-mail: zengfanping@kingsoft.com

– prepareToPlay required method

准备视频播放

- (void)prepareToPlay

Discussion

prepareToPlay处理逻辑

  • 如果isPreparedToPlay为FALSE,直接调用play,则在play内部自动调用prepareToPlay接口。
  • prepareToPlay调用后,由MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知完成准备工作。查询isPreparedToPlay可以获得具体属性值。

通知类型

  • MPMediaPlaybackIsPreparedToPlayDidChangeNotification, 播放器完成对视频文件的初始化时发送通知

Declared In

KSYMediaPlayback.h

  isPreparedToPlay required method

查询视频准备是否完成

@property (nonatomic, readonly) BOOL isPreparedToPlay

Discussion

isPreparedToPlay处理逻辑

  • 如果isPreparedToPlay为TRUE,则可以调用play接口开始播放;
  • 如果isPreparedToPlay为FALSE,则需要调用prepareToPlay接口开始准备工作;
  • 如果isPreparedToPlay为FALSE,直接调用play,则在play内部自动调用prepareToPlay接口。

See Also

Declared In

KSYMediaPlayback.h

– play required method

播放当前视频。

- (void)play

Availability

Available in KSYMediaPlayback 1.0 and later.

Discussion

play的使用逻辑:

  • 如果调用play方法前已经调用prepareToPlay完成播放器对视频文件的初始化,且shouldAutoplay属性为NO,则调用play方法将开始播放当前视频。此时播放器状态为CBPMoviePlaybackStatePlaying。
  • 如果调用play方法前已经调用prepareToPlay完成播放器对视频文件的初始化,且shouldAutoplay属性为YES,则调用play方法将暂停播放当前视频,实现效果和pause一致。
  • 如果调用play方法前未调用prepareToPlay完成播放器对视频文件的初始化,则播放器自动调用prepareToPlay进行视频文件的初始化工作。
  • 如果调用play方法前已经调用pause暂停了正在播放的视频,则重新开始启动播放视频。

See Also

Declared In

KSYMediaPlayback.h

– pause required method

暂停播放当前视频。

- (void)pause

Availability

Available in KSYMediaPlayback 1.0 and later.

Discussion

pause调用逻辑:

  • 如果当前视频播放已经暂停,调用该方法将不产生任何效果。
  • 重新回到播放状态,需要调用play方法。
  • 如果调用pause方法后视频暂停播放,此时播放器状态处于CBPMoviePlaybackStatePaused。
  • 播放器内部监听了UIApplicationWillEnterForegroundNotification通知,该通知发生时如果视频仍然在播放,将自动调用pause暂停当前视频播放。

后台播放逻辑:

  • 需要APP有后台执行权限,在工程Info.plist中添加后台运行模式,设置为audio。具体是添加UIBackgroundModes项,值为audio。
  • 当用户点击home按钮后,播放器进入后台继续读取数据并播放音频。
  • 当APP回到前台后,音频继续播放。图像渲染内容保持和音频同步。
  • 如果在开启后台运行模式后,需要切换后台暂停,需要监听相关事件并主动调用pause操作。

Declared In

KSYMediaPlayback.h

– stop required method

结束当前视频的播放。

- (void)stop

Availability

Available in KSYMediaPlayback 1.0 and later.

Discussion

stop调用逻辑:

  • 调用stop结束当前播放,如果需要重新播放该视频,需要调用prepareToPlay方法。
  • 调用stop方法后,播放器开始进入关闭当前播放的操作,操作完成将发送MPMoviePlayerPlaybackDidFinishNotification通知。

通知:

  • MPMoviePlayerPlaybackDidFinishNotification, 当播放完成将发送该通知。

See Also

Declared In

KSYMediaPlayback.h

  currentPlaybackTime required method

播放视频的当前时刻,单位为秒。

@property (nonatomic) NSTimeInterval currentPlaybackTime

Availability

Available in KSYMediaPlayback 1.0 and later.

Discussion

currentPlaybackTime属性更改时机:

  • 视频正常播放时,如果改变currentPlaybackTime的值,将导致播放行为跳转到新的currentPlaybackTime位置播放。
  • 在调用prepareToPlay之前设置该属性的值无效,若希望从指定位置开始播放,需要以下设置
    • 将player的自动播放属性shouldAutoplay设置为NO;
    • 监听到MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知时,将currentPlaybackTime设置为期望开始播放的时间点,单位是秒
    • 调用play方法,即可从指定位置开始播放

Declared In

KSYMediaPlayback.h