3

我在滚动视图中有一个 AVPlayer,由于某种原因,当 AVPlayer 播放滚动视图时,滚动视图会跳到顶部,导致视频在屏幕上不可见,因为视频朝向滚动视图的底部。因此,为了阻止滚动视图跳跃,我想在用户启动/停止视频时禁用和启用滚动。不确定这是否能解决我的问题,但我希望有人知道为玩家添加观察者或通知的正确方法,以便我可以对其进行测试。

这是我在 ViewController 中的代码,其中包含一些静态文本和 AVPlayer。 下面的代码:

    let path = NSBundle.mainBundle().pathForResource("carbon_video", ofType:"mp4")

    let url = NSURL.fileURLWithPath(path!)

    var player = AVPlayerViewController()
    var avPlayer = AVPlayer(URL: url)
    player.player = avPlayer
    self.addChildViewController(player)
    player.view.translatesAutoresizingMaskIntoConstraints = false

    player.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.New, context: nil)
    player.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)
4

1 回答 1

0

我认为这可以帮助你

func playerItemDidReachEnd(notification: NSNotification) {
    let p: AVPlayerItem = notification.object as! AVPlayerItem
    p.seekToTime(kCMTimeZero)
}

override func viewDidAppear(animated: Bool) {
    avPlayer.play()
    paused = false
    // Disable scrolling
}

override func viewDidDisappear(animated: Bool) {
    avPlayer.pause()
    paused = true
// Enable scrolling
}
于 2016-01-20T17:48:42.697 回答