繁体   English   中英

Swift SwiftUI - LazyVStack AVPlayer 设置应缓存的最大视频数或设置最大缓存大小

[英]Swift SwiftUI - LazyVStack AVPlayer set the max number of videos that should be cached or set max cache size

我得到了每个 LazyVStack 项目:

var vidUrl: String
let player: AVPlayer

init(vidUrl: String) {
    self.vidUrl = vidUrl
    player = AVPlayer(url: URL(string: vidUrl)!)
}

身体:

VideoPlayer(player: player)

我有数百个视频,因此 RAM 不会停止填充,我猜这是因为 AVPlayer 没有释放缓存?

在 Android ExoPlayer 中,我可以设置应缓存的最大视频数或最大缓存大小。

AVPlayer 可以吗?

AVPlayer 没有内置机制来限制缓存的视频数量或缓存大小。 但是,您可以在不再需要时手动释放 AVPlayer 实例及其相关资源。 一种方法是保持对 AVPlayer 实例的弱引用,并在不再使用它们时将它们从 memory 中删除,例如当用户滚动离开列表中的相应视频时。 此外,您可以在播放完视频后将 AVPlayer 的 currentItem 属性设置为 nil,这将释放相关资源。

另一种选择是使用第三方缓存库,例如 AVPlayerCache,它提供了一种机制来缓存 AVPlayer 项目并控制缓存的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM