你如何在Swift中循环AVPlayer? [英] How do you loop AVPlayer in Swift?

查看:271
本文介绍了你如何在Swift中循环AVPlayer?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

简单的问题我似乎无法找到某个原因的答案。

Simple question I can't seem to find an answer to for some reason.

如何在Swift中循环AVPlayer?

How do you loop AVPlayer in Swift?

numberOfLoops = -1仅适用于AVAudioPlayer

numberOfLoops = -1 only works for AVAudioPlayer

我确实需要循环而没有任何延迟/黑闪等等。这就是为什么我不是使用MPMoviePlayerViewController。

I do need it to loop without any delay / black flash etc. That's why I'm not using MPMoviePlayerViewController.

感谢您的帮助。

代码:

    let url_1 = NSURL.fileURLWithPath(outputFilePath_1)

    let asset_1 = AVAsset.assetWithURL(url_1) as? AVAsset
    let playerItem_1 = AVPlayerItem(asset: asset_1)

    let player_1 = AVPlayer(playerItem: self.playerItem_1)

    let playerLayer_1 = AVPlayerLayer(player: self.player_1)

    playerLayer_1!.frame = self.view.frame

    self.view.layer.addSublayer(self.playerLayer_1)

    player_1!.play()


推荐答案

Swift 3

NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: self.player.currentItem, queue: .main) { _ in
    self.player?.seek(to: kCMTimeZero)
    self.player?.play()
}

Swift 2

配置AVPlayerItem并创建播放器后:

After AVPlayerItem is configured and player is created:

var player: AVPlayer!

...

// Invoke after player is created and AVPlayerItem is specified
NSNotificationCenter.defaultCenter().addObserver(self,
    selector: "playerItemDidReachEnd:",
    name: AVPlayerItemDidPlayToEndTimeNotification,
    object: self.player.currentItem)

...

func playerItemDidReachEnd(notification: NSNotification) {
    self.player.seekToTime(kCMTimeZero)
    self.player.play()
}

这篇关于你如何在Swift中循环AVPlayer?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆