首页 > 解决方案 > Swift 5 从本地缓存播放视频

问题描述

我正在尝试减少我的应用程序的数据消耗。这就是为什么我在我的 tableviewCells 中为视频实现了以下缓存

https://stackoverflow.com/a/45062989/7186851

到目前为止,它可以工作,我可以检查视频是否在我的缓存中,但我无法从本地缓存中播放它

缓存的视频路径看起来像这样

file:/Users/Dev1/Library/Developer/CoreSimulator/Devices/86AFC4DE-CA7F-4AA4-97EE-0FB17173D5A4/data/Containers/Data/Application/697F3F33-A87A-4CDD-A1D0-D124A8CA5593/Library/Caches/-MV8TA8hReegG2OIUyy0 -- file:///

尝试在 AVPlayer 中播放视频时,它不起作用。

            CacheManager.shared.getFileWith(stringUrl: vUrl) { result in

                switch result {
                case .success(let newUrl):
                    uri = URL(fileURLWithPath: newUrl.absoluteString)
                   // let url = URL(string: uri)
                    print(uri)
                    self.player = AVPlayer(url: uri)
                    self.playerLayer = AVPlayerLayer(player: self.player)
                    self.playerLayer?.frame = self.postImageView.frame
                    self.contentView.layer.addSublayer(self.playerLayer!)
                case .failure(_):
                    uri = URL(string: vUrl)
                }
            }

之后我开始播放视频。当我从我的 cloudStorage 下载我的视频时,它工作得非常好,但我无法播放缓存的视频。

有什么建议怎么做吗?如果有帮助,我有一个与 tiktok/instagram&fb 类似的视频源。

标签: swiftcachingvideoavplayer

解决方案


推荐阅读