[英]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.