How to detect when AVPlayer video ends playing?

前端 未结 10 936
感动是毒
感动是毒 2020-11-28 07:48

I\'am using AVPlayer for playing local video file (mp4) in Swift. Does anyone know how to detect when video finish with playing? Thanks

10条回答
  •  再見小時候
    2020-11-28 08:16

    Swift 4.0

    This one works for me. Thanks to @Channel

        private func playVideo(fileURL: String) {
    
                // Create RUL object
                let url = URL(string: fileURL)
    
                // Create Player Item object
                let playerItem: AVPlayerItem = AVPlayerItem(url: url!)
                // Assign Item to Player
                let player = AVPlayer(playerItem: playerItem)
    
                // Prepare AVPlayerViewController
                let videoPlayer = AVPlayerViewController()
                // Assign Video to AVPlayerViewController
                videoPlayer.player = player
    
                NotificationCenter.default.addObserver(self, selector: #selector(myViewController.finishVideo), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
    
                // Present the AVPlayerViewController
                present(videoPlayer, animated: true, completion: {
                        // Play the Video
                        player.play()
                })
    
        }
    
        @objc func finishVideo()
        {
                print("Video Finished")
        }
    

提交回复
热议问题