Verwenden Sie Haneke, um MP4-Dateien mit AVPlayer im Cache abzuspielen.

Ich bin auf der Suche nach Hilfe bei der Lösung eines scheinbar einfachen Problems, aber ich kann es einfach nicht herausfinden.

Ich verwende Haneke von Cocoapods, um MP4-Dateien von der URL (auf meinem Server) zwischenzuspeichern und dann die zwischengespeicherte Version mit AVPlayer abzuspielen. Ich richte einen AVPreviewLayer in einer UICOllectionViewCell ein und führe diesen Code aus. Das Problem ist, dass der Player das Video zunächst nicht wiedergibt, es jedoch in Zukunft erneut wiedergibt (nachdem ich in der UICollection-Ansicht zu dieser Zelle zurückgeblättert habe).

           let getUrl = NSURL(string: location)

            cache.fetch(URL: getUrl!).onSuccess { (data) in

                // Hacky way of getting cache URL from Haneke
                let basePath = DiskCache.basePath().stringByAppendingPathComponent("shared-data/original/")
                let path = DiskCache(path: basePath, capacity: UINT64_MAX).pathForKey(getUrl!.absoluteString)
                let fileURL = NSURL(fileURLWithPath: path)

                self.player = AVPlayer(URL: fileURL)

                let playerLayer = AVPlayerLayer(player: self.player)

                playerLayer.frame = self.view.bounds

                cell.videoView.layer.addSublayer(playerLayer)

                print("Playing video")

                self.player.play()

            }