2016-01-20 90 views
2

我有一个AVPlayer在scrollView中,并且由于某些原因,当AVPlayer播放scrollview时跳转到顶部导致视频在屏幕上不可见,因为视频正在转向scrollView的底部。因此,为了停止scrollView跳跃我想禁用和启用滚动时,用户启动/停止视频。不知道这是否能解决我的问题,但我希望有人知道为播放器添加观察者或通知的正确方式,以便我可以对其进行测试。如何检测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) 

回答

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 
} 
相关问题