gpt4 book ai didi

ios - 背景视频循环无法快速工作

转载 作者:行者123 更新时间:2023-11-28 08:09:10 24 4
gpt4 key购买 nike

我已经创建了页面控件,因为背景视频将被加载,视频正在播放但循环不起作用,我在 stackoverflow 中引用过 但我不能得到正确答案

这是我的代码:

 override func viewDidLoad() {
super.viewDidLoad()
self.pageController.currentPage = 0
loadVideo(currentPage: 0)
}

func loadVideo(currentPage: Int) {

DispatchQueue.main.async {

self.videoPath = Bundle.main.url(forResource: "BoardVideoArray[currentPage]", withExtension: "mp4")

self.player = AVPlayer(url: self.videoPath!)
self.player?.actionAtItemEnd = .none
self.player?.isMuted = true

self.playerLayer = AVPlayerLayer(player: self.player)
self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.playerLayer.zPosition = -1
}

playerLayer.frame = videoVIew.frame

videoVIew.layer.addSublayer(playerLayer)
videoVIew.bringSubview(toFront: pageController)

player?.play()

//loop video
NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: player?.currentItem, queue: nil, using: { (_) in
DispatchQueue.main.async {
self.player?.seek(to: kCMTimeZero)
self.player = AVPlayer(url: self.videoPath!)
self.player.play()
}
})

}

我已声明播放器和 avplayerLayer 超出范围

   var player: AVPlayer!
var playerLayer = AVPlayerLayer()

我花了 4 个多小时,但我找不到我犯的错误。问题是视频没有循环播放

最佳答案

试试这个方法。

    guard let path = Bundle.main.path(forResource: "video", ofType:"m4v") else {
debugPrint("video.m4v not found")
return
}
//VideoPlayer is a subClass of AVPlayer
let player = VideoPlayer(url: URL(fileURLWithPath: path))
playerViewController = AVPlayerViewController()
playerViewController.videoGravity = AVLayerVideoGravityResizeAspectFill
playerViewController.player = player
//self.videoPlayerView is a UIView in which i want to show video.
playerViewController.view.frame = self.videoPlayerView.bounds
self.videoPlayerView.addSubview(playerViewController.view)
playerViewController.showsPlaybackControls = false
playerViewController.player?.play()
player.shouldMute(mute: true)
NotificationCenter.default.addObserver(self, selector: #selector(HomeViewController.videoDidStopPlaying(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)


func videoDidStopPlaying(notification:Notification) {
self.playerViewController.player?.seek(to: kCMTimeZero)
self.playerViewController.player?.play()
}

关于ios - 背景视频循环无法快速工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44174487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com