Swift -- AVPlayerViewController播放本地视频并且通知重复播放

import AVKit

    override func viewDidLoad() {
    
    
        super.viewDidLoad()
        self.addPlayerView()
    }
    
    func addPlayerView(){
    
    
        guard let url = Bundle.main.url(forResource: "720p", withExtension: "mov") else {
    
    
            return
        }
        
        //通知拿到播放结束的时间节点并且继续play
        NotificationCenter.default.addObserver(self, selector: #selector(goBackFinished), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)

        self.playVC = AVPlayerViewController()
        self.playVC.player = AVPlayer(url: url)

        self.playVC.view.frame = CGRect(x: 0, y: 68, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - 68)
        self.playVC.showsPlaybackControls = true
        self.view.addSubview(self.playVC.view)

        self.playVC.player?.play()
    }
    
    @objc func goBackFinished() {
    
    
        replay()
    }
    
    func replay() {
    
    
        self.playVC.player?.seek(to: CMTimeMake(value: 0, timescale: 1))
        self.playVC.player?.play()
    }

注:
1.使用AVPlayerViewController播放本地视频,其可自定义的余地很小,基本上都是苹果给封装好了的,适用于那些我只想安安静静的播放一段视频而不需要各种其他炫酷的功能,如果你业务需要可以找一些写的好的第三方的可以试试。

2.AVPlayerItem有好几个通知,你可以在不同的情况下使用不同的通知处理不同的事情,它和代理在这里使用是一样的,只不过有的功能实现是用代理写的,有的是用通知写的。





猜你喜欢

转载自blog.csdn.net/SoftwareDoger/article/details/106572415
今日推荐