我使用AVQueuePlayer和AVPlayerLooper方法循环播放相对较短的剪辑-2秒的剪辑。第一次流,很好。当它开始循环播放时,它会在最后显示一个空白屏幕,然后循环播放并在剪辑中途跳转,有时还可以。这对于ios应用程序要求来说效果不佳。什么是建议/选项?
这是代码-
class VideoView: UIView {
var player : AVQueuePlayer!
var playerLayer : AVPlayerLayer!
var playerLooper : AVPlayerLooper!
override init(frame: CGRect) {
super.init(frame: frame)
sharedInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sharedInit()
}
override func prepareForInterfaceBuilder() {
sharedInit()
}
func sharedInit() {
self.layer.masksToBounds = true
self.layer.cornerRadius = 20
player = AVQueuePlayer()
playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = .resizeAspectFill
}
func update(mcState : MultipleChoiceStates, url : URL) {
if(mcState == .check) {
player.pause()
let item = AVPlayerItem(url: url)
playerLooper = AVPlayerLooper(player: player, templateItem: item)
self.layer.addSublayer(playerLayer)
player.play()
}
}
}