Ios 快速视频回放持续时间长

Ios 快速视频回放持续时间长,ios,swift,video,avfoundation,Ios,Swift,Video,Avfoundation,我使用以下代码从我的库中加载视频,然后播放。我的问题是速度很慢,所以我不得不等待重播大约10秒,即使这样,它也不能正常工作 func showVideo(obj: AnyObject!) { manager.requestAVAssetForVideo(obj as! PHAsset, options: videoOptions, resultHandler: {(avAsset: AVAsset?, audioMix: AVAudioMix?, info: [NSObject : An

我使用以下代码从我的库中加载视频,然后播放。我的问题是速度很慢,所以我不得不等待重播大约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)

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

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

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

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

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

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

我应该在哪里添加NSNotificationCenter代码?您可以将其放入playVideo()中,但如果要多次调用playVideo(),请不要忘记删除观察者。我应该在哪里添加NSNotificationCenter代码?您可以将其放入playVideo()中,但如果要多次调用playVideo(),请不要忘记删除观察者