【发布时间】:2020-03-22 13:19:48
【问题描述】:
我的应用程序一直存在问题,AVPlayerViewController 在被关闭后不会从内存中清除,它只是在每次演示后累积更多。
这是在 iOS 12 上,在一个空项目中尝试以下操作,我在 viewDidAppear 中执行此操作,例如在它被关闭几秒钟后自动使其弹出。如果你在 Xcode 底部的“Debug Memory Graph”工具中发现 AVPlayerViewController 保留在内存中并且有一堆实例,那么你会在一堆解雇之后注意到。
关键是让视频播放到最后,控件会重新弹出。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(6)) { [weak self] in
let assetURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!
let player = AVPlayer(url: assetURL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self?.navigationController?.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
}
}
【问题讨论】:
标签: ios cocoa-touch avfoundation avplayer avplayerviewcontroller