如何在Swift 4中循环AVPlayer?

4
我已经使用了以下代码:
NotificationCenter.default.addObserver(self,selector: #selector(ViewController.restartVideoFromBeginning),name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,object: nil)

@objc func restartVideoFromBeginning()  {


    let seconds : Int64 = 0
    let preferredTimeScale : Int32 = 1
    let seekTime : CMTime = CMTimeMake(seconds, preferredTimeScale)

    player!.seek(to: seekTime)

    player!.play()

}

但是restartVideoFromBeginning中的播放器值为nil,有人知道为什么吗?


你的玩家是第一次玩吗? - Razib Mollick
https://developer.apple.com/documentation/avfoundation/avplayerlooper - matt
是的,它正在第一次播放。 - 123
2个回答

10
我尝试过这个,它有效。
循环播放视频。
NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: myPlayer.currentItem, queue: nil) { (_) in
            myPlayer.seek(to: CMTime.zero)
            myPlayer.play()
}
myPlayerView.layer.addSublayer(avLayer)

3

如果使用Swift 4.2或更早版本,请先查看AVPlayerLooper。

        NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: player.currentItem, queue: nil) { (_) in
        player.seek(to: CMTime.zero)
        player.play()
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接