Swift视频重播持续很长时间

时间:2016-07-28 14:14:04

标签: ios swift video avfoundation

我使用以下代码从我的库中加载视频并在之后播放。我的问题是它非常慢,所以我必须等待重播大约10秒,即使这样它也不能很好地工作。

func showVideo(obj: AnyObject!) {
    manager.requestAVAssetForVideo(obj as! PHAsset, options: videoOptions, resultHandler: {(avAsset: AVAsset?, audioMix: AVAudioMix?, info: [NSObject : AnyObject]?) -> Void in
        self.url = (avAsset as! AVURLAsset).URL
        self.playVideo()
    })
}

// plays the video
private func playVideo() {
    asset = AVAsset(URL: url!)
    playerItem = AVPlayerItem(asset: asset!)

    player = AVPlayer(playerItem: self.playerItem!)

    playerLayer = AVPlayerLayer(player: self.player)
    playerLayer.frame = view.frame
    view.layer.addSublayer(self.playerLayer!)

    player!.play()
}

我得到的对象是:

let allVideo = PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)
showVideo(allVideo.lastObject)

1 个答案:

答案 0 :(得分:0)

要循环播放视频,我使用通知:

NSNotificationCenter.defaultCenter().addObserver(self
    , selector: #selector(playerItemDidReachEnd(_:))
    , name: AVPlayerItemDidPlayToEndTimeNotification
    , object: player.currentItem)

和功能:

func playerItemDidReachEnd(notification: NSNotification) {
    if let playerItem = notification.object {
        playerItem.seekToTime(kCMTimeZero)
    }
}