[英]How to stop AVQueuePlayer memory leak?
我正在使用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:性能工具数据正在使用内存,并且永远不会释放。
您有什么想法释放内存吗?
我应该如何使用AVQueuePlayer释放内存?
您需要注意释放当前的数组变量项:[AVPlayerItem]。 最好将其创建为类属性。 根据您的代码,计时器不会失效,因此它将保留旧数组。 最佳做法是在创建新计时器之前释放旧计时器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.