簡體   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