我使用AVPlayerLooper制作了一个AVPlayerView,可以不间断播放4个视频.
问题是:AVPlayerView只显示一个循环视频.但我需要播放一个序列(4个视频).
如何让AVPlayerLooper播放所有4个视频并在此之后循环播放?
import Cocoa import AVKit import AVFoundation class ViewController: NSViewController { @IBOutlet weak var viewOne: AVPlayerView! var playerLooper: AVPlayerLooper? = nil override func viewDidLoad() { super.viewDidLoad() let videos = (1...4).map { _ in Bundle.main.urls(forResourcesWithExtension: "mov",subdirectory: nil)![Int(arc4random_uniform(UInt32(4)))] } viewOne.player = AVQueuePlayer(url: videos[Int(arc4random_uniform(UInt32(4)))]) let item = AVPlayerItem(url: videos[Int(arc4random_uniform(UInt32(4)))]) playerLooper = AVPlayerLooper(player: viewOne.player as! AVQueuePlayer,templateItem: item) viewOne.player?.actionAtItemEnd = .advance viewOne.controlsstyle = .none NotificationCenter.default.addobserver(self,selector: Selector(("loopSequence")),name: NSNotification.Name.AVPlayerItemDidplayToEndTime,object: viewOne.player?.currentItem) func loopSequence() { self.viewOne.player?.pause() self.viewOne.player?.currentItem?.seek(to: kCMTimeZero,completionHandler: nil) self.viewOne.player?.play() } loopSequence() } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。