如图,登录页放个循环播放的视频。
import UIKit
import AVKit
class LoginVC: BaseViewController {
private var playerController: AVPlayerViewController!
private var playerItem: AVPlayerItem?
deinit {
NotificationCenter.default.removeObserver(self)
}
override func viewDidLoad() {
super.viewDidLoad()
setupAVPlayerVC()
// 通知-播放结束
NotificationCenter.default.addObserver(self, selector: #selector(goBackFinished), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
}
private func setupAVPlayerVC() {
// 需要去添加文件才能获取到 Build Phases -> Copy Bundle Resources
let path = Bundle.main.path(forResource: "video_src", ofType: "mp4") ?? ""
playerItem = AVPlayerItem(url: URL(fileURLWithPath: path))
playerController = AVPlayerViewController()
playerController.delegate = self
playerController.player = AVPlayer(playerItem: playerItem)
playerController.videoGravity = .resizeAspectFill
playerController.showsPlaybackControls = false
playerController.player?.volume = 0
CMAudioHelper.mutePlay()
self.view.addSubview(playerController.view)
self.view.sendSubviewToBack(playerController.view)
playerController.view.snp.remakeConstraints { make in
make.edges.equalToSuperview()
}
playerController.player?.play()
}
@objc func goBackFinished() {
playerController.player?.seek(to: CMTimeMake(value: 0, timescale: 1))
playerController.player?.play()
}
}
extension LoginVC: AVPlayerViewControllerDelegate {
func playerViewController(_ playerViewController: AVPlayerViewController, willBeginFullScreenPresentationWithAnimationCoordinator coordinator: UIViewControllerTransitionCoordinator) {
}
func playerViewController(_ playerViewController: AVPlayerViewController, willEndFullScreenPresentationWithAnimationCoordinator coordinator: UIViewControllerTransitionCoordinator) {
}
}