Zany-灵活的AVPlayer

作者: 迷路的洞二 | 来源:发表于2018-03-22 14:06 被阅读4次

😏Zany完成了对播放进度、状态的监听,包括了播放完成后的回调,大幅减少代码量

大家要是有关于播放器的问题可以找我,一起讨论哇哈哈哈哈哈😁

Email Yvente@163.com

创建一个Zany实例

  let player = Zany(url: url)

创建一个带有播放进度的Zany实例

  let player = Zany(url: url, observer: { (zany, progress) -> (Void) in
    // DispatchQueue.main
    // update UI about progress

  })

操作这个实例

你可以创建一个Zany实例作为播放器,在需要播放的时候调用 'play()' 方法

  let player = Zany(url: url, observer: { (zany, progress) -> (Void) in
    // DispatchQueue.main
    // update UI about progress

  })
  player.play()

功能包括:

  • play(): 播放一个已经暂停的播放器
  • pause(): 暂停一个正在播放的播放器
  • reset(_ url: URL?, restart: Bool = true): 重置播放器,替换URL

属性:

  • .id: 播放器的唯一标识
  • .state: 播放器状态 (paused,running,finished)

添加/移除 观察者

你可以为Zany实例添加进度观察者(单独添加的要记得移除,初始化默认添加,已经在销毁前作了移除):

let token = player.observe { (zany, progress) -> (Void) in
    // DispatchQueue.main
    // update UI about progress
}
player.play()

你可以通过token移除对应观察者:

player.remove(observer: token)

监听播放状态的改变

您可以通过分配一个函数回调来监听状态更改 - 'onstatechange' 属性

newState为finished时表示播放完成,再也不用到处写播放完成的通知了😊

 player.onStateChanged = {(zany,newState) in
            
      switch newState {
      case .running:
           //  for example: change button state
           //  the player is running
      case .paused:
           //  the player is paused
                
      case .finished:
           //  the player playFinished
            
       }
 }

你甚至可以为 AVPlayerItem 添加Observer

例如:"status","loadedTimeRanges","playbackBufferEmpty","playbackLikelyToKeepUp"

      let player = Zany(url: url, observer: { (zany, progress) -> (Void) in
            print("\(zany.id)---\(progress)")
        }, ItemAddObserver: { (zany, item) -> (Void) in
            // add observer for AVPlayerItem
            
            item.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.new, context: nil)
            
        }) { (zany, item) -> (Void) in
            // remove observer
             item.removeObserver(self, forKeyPath: "status")
        }

是不是很方便😏

就想要🦍🦍 欢迎戳这里 😏😏

发现bug或好的建议欢迎 issues or Email Yvente@163.com😏😏😏

相关文章

网友评论

    本文标题:Zany-灵活的AVPlayer

    本文链接:https://www.haomeiwen.com/subject/utirlxtx.html