如何在Swift中使用播放控件制作循环播放的无缝视频?

时间:2020-11-04 15:52:58

标签: swift loops avplayer playback avqueueplayer

我有以下代码使我的(10秒)视频无缝循环。它可以工作,但是我使用AVQueuePlayer,但似乎无法集成暂停/播放按钮等。使用普通的AVPlayer,它会显示其标准的暂停/播放按钮。我想将这些功能集成到我的代码中。有人可以帮我吗?

Import Foundation
Import AVKit
Import AVFoundation

Class VideoController: UIViewController {

private var player: AVQueuePlayer!
private var playerLayer: AVPlayerLayer!
private var playerItem: AVPlayerItem!
private var playerLooper: AVPlayerLooper!


override func viewDidLoad(){
    super.viewDidLoad()

    let path = Bundle.main.path(forResource: "flickering", ofType: "mp4")
    let pathURL = URL(fileURLWithPath: path!)
    let duration = Int64( ( (Float64(CMTimeGetSeconds(AVAsset(url: pathURL).duration)) *  10.0) - 1) / 10.0 )

    player = AVQueuePlayer()
    playerLayer = AVPlayerLayer(player: player)
    playerItem = AVPlayerItem(url: pathURL)
    playerLooper = AVPlayerLooper(player: player as! AVQueuePlayer, templateItem: playerItem,
                                  timeRange: CMTimeRange(start: CMTime.zero, end: CMTimeMake(value: duration, timescale: 1)) )
    playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
    playerLayer.frame = view.layer.bounds
    view.layer.insertSublayer(playerLayer, at: 1)
    
    player.play() 
    
    
}

}

0 个答案:

没有答案