1
Ich verwende den folgenden Code, um ein Video aus meiner Bibliothek zu laden und danach abzuspielen. Mein Problem ist, dass es sehr langsam ist und so muss ich ungefähr 10 Sekunden auf die Wiederholung warten und selbst dann funktioniert es nicht gut.Swift Video-Wiedergabe dauert lange
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()
}
Und ich bekomme das Objekt aus:
let allVideo = PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)
showVideo(allVideo.lastObject)
und wo sollte ich den NSNotificationCenter-Code hinzufügen? – mafioso
Sie könnten es in playVideo() setzen, aber vergessen Sie nicht, den Beobachter zu entfernen, wenn Sie playVideo() mehr als einmal aufrufen möchten – richy