gpt4 book ai didi

ios - 多次使用后 AVPlayer 崩溃 - iOS

转载 作者:搜寻专家 更新时间:2023-10-31 21:47:22 25 4
gpt4 key购买 nike

我正在使用 AVPlayer 对象在我的应用程序中流式传输超高清视频。它的用法非常简单,但在 5~6 个流后我遇到了问题。

问题

应用程序崩溃,调试 session 关闭,控制台上显示一条消息:

Message from debugger: Terminated due to memory issue

每次在 iPhone 6 上观看 4 或 5 个视频,在 iPhone 7 上观看 7 或 8 个视频后,都会发生这种情况。

我尝试过的

因为调试 session 在我的应用程序崩溃时结束,所以我无法准确看到崩溃发生时的内存使用情况。然而,在它崩溃之前,调试 session 告诉我 2.5% 的 RAM 用于应用程序,即使在 4 个流之后也是如此。没那么多!

我使用 Instruments 记录了我的分配,发现我从未使用超过 40MiB,这实际上并没有那么多。

我的代码

我只在我的主用户 session 中存储一个 AVPlayer,因此调试 session 和仪器分配记录从一开始就包括我的播放器的内存。

每次用户退出播放器 View Controller 时,我只将当前播放器项替换为 nil (Swift),如下所示:

player.replaceCurrentItem(with: nil)

如果用户想看另一个视频,我会用新视频替换当前视频。

我尝试为每个视频创建一个 AVPlayer,但这并没有改变任何东西。

问题

有人知道发生了什么事吗?

使用 AVPlayer 播放 4K 视频是个好主意吗?

Youtube iOS 应用程序使用哪个播放器?

许多 VR 应用程序(Jaunt、Within、NYT VR、Sky VR 等)都在为虚拟现实流式传输 4K 视频。知道他们使用的是哪个播放器吗?

注意事项

我在这个项目中使用 Swift,但如果你愿意,请随时使用 Objective-C 回答!

最佳答案

您确定播放器正确重置了吗?我的意思是,如果您在播放器 Controller 中使用任何 subview ,则可能某些 View 未正确释放。也尝试调用退出的播放器 View Controller :

player.replaceCurrentItemWithPlayerItem(nil)

如果您正在处理 KVO,我可以向您推荐一个对我帮助很大的库。查看以下内容:PlayerView

关于ios - 多次使用后 AVPlayer 崩溃 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39851349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com