0
AVPlayerViewControllerがビデオを再生しているかどうか、またはそのバッファリングを確認します.iまた、このAVPlayerViewControllerのオーバーレイビューを次と前のボタンで追加します。 次のコードで私のビデオはバッファリングされていますが、通常の再生を示しています.i再生中か一時停止中かバッファリング中かを確認します。あなたが状態をチェックhandlePlayerStatus
インサイドAVPlayerの再生状態を確認し、AVPlayerViewControllerにオーバーレイビューを追加します。
player.addPeriodicTimeObserverForInterval(CMTime(value: 1, timescale: 3), queue: dispatch_get_main_queue()) { [weak self] time in
self?.handlePlayerStatus(time)
}
:あなたは定期的な時間オブザーバを追加することができますプレイヤーの状態を確認するために
let playerAV = AVPlayerViewController()
var player = AVPlayer()
let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.d e/big_buck_bunny.mp4")
player = AVPlayer(URL:videoURL!)
playerAV.player = player
playerAV.view.frame = self.movieView.frame
self.addChildViewController(playerAV)
self.movieView.addSubview(playerAV.view)
playerAV.didMoveToParentViewController(self)
playerAV.contentOverlayView?.addSubview(viewNext)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.notificationObserver(_:)), name:AVPlayerItemDidPlayToEndTimeNotification , object: player.currentItem)
player.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)
_ = UIDevice.beginGeneratingDeviceOrientationNotifications
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.deviceOrientationDidChange(_:)) , name:
UIDeviceOrientationDidChangeNotification, object: nil)
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if keyPath == "rate" {
if let rate = change?[NSKeyValueChangeNewKey] as? Float {
if rate == 0.0 {
print("playback stopped")
}
if rate == 1.0 {
print("normal playback")
}
if rate == -1.0 {
print("reverse playback")
}
}
}
print("you are here")
}
そのまだ機能していません。まだバッファリングしていますが、あなたのハンドルプレイヤーに告げると、バッファリングが終了しました –
正確に何が動作していませんか? – fiks
まだバッファリングモードですが、//バッファリングが終了し、プレイヤーは再生準備ができています。 –