我使用的是Xcode 7、Swift和iOS 9.0。
如果我..。
如果调用此函数,则开始占用内存:
var queuePlayer: AVQueuePlayer!
func startAgain(){
if queuePlayer != nil{
queuePlayer.pause()
queuePlayer.removeAllItems()
queuePlayer = nil
}
var items: [AVPlayerItem] = []
for _ in 1 ... 10 {
items.append(AVPlayerItem(URL: NSBundle.mainBundle().URLForResource("Music", withExtension: "mp3")!))
}
queuePlayer = AVQueuePlayer(items: items)
queuePlayer.play()
NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: "startAgain", userInfo: nil, repeats: false)
}我甚至子类AVPlayerItem和AVURLAsset,看看它们是否被去初始化.而且他们会的!所以我不知道为什么会这样。
通过使用仪器,我可以看到VM: Performance数据就是使用内存的东西,它永远不会被释放。
你有什么办法释放记忆吗?
为了释放内存,我应该如何处理AVQueuePlayer呢?
发布于 2017-12-03 12:19:25
您需要负责释放当前的数组var项: AVPlayerItem。最好将其创建为类属性。从您的代码中,计时器不会失效,因此它保留旧的数组。最佳实践是在创建新计时器之前释放旧计时器。
https://stackoverflow.com/questions/32933100
复制相似问题