我有一個AVPlayer,我想暫停並在點擊時繼續。暫停/播放AVPlayer的問題
我決定去做這件事的方法是在AVPlayer所附的視圖上使用tapGestureRecognizer。
當有一個水龍頭布爾變量didSelect變爲真時。當第二次敲擊時,didSelect變爲假。
有趣的是,當我在AVPlayerItemDidPlayToEndTime通知使用
if didSelect == false {
player.play()
}
if didSelect == true {
player.pause()
}
,它工作正常,但只有後的視頻完整。這讓我想知道是否有沿AVPlayerItemIsIsPlaying的行通知,但我還沒有找到任何東西。
下面是代碼的樣子。
playerView.layer.cornerRadius = playerView.bounds.width * 0.025
guard let path = Bundle.main.path(forResource: "video", ofType:"mp4") else {
debugPrint("video.m4v not found")
return
}
let player = AVPlayer(url: URL(fileURLWithPath: path))
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = playerView.frame
playerLayer.frame = self.frame
playerLayer.frame = playerView.bounds
playerLayer.masksToBounds = true
playerLayer.cornerRadius = playerView.bounds.width * 0.025
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.playerView.layer.addSublayer(playerLayer)
player.isMuted = true
player.play()
if didSelect == false {
player.play()
}
if didSelect == true {
player.pause()
}
//looper
NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem, queue: nil)
{ notification in
let t1 = CMTimeMake(5, 100)
player.seek(to: t1)
player.play()
}