【问题标题】:How do I stop MPAVItem crashing my iOS app with videos in my UIWebView?如何阻止 MPAVItem 在我的 UIWebView 中使用视频使我的 iOS 应用程序崩溃?
【发布时间】:2014-03-25 14:14:26
【问题描述】:

我有一个不断刷新并显示新视频和图像的网络视图。我怀疑 HTML 页面中的对象没有正确释放,因为我的内存增长缓慢。我在调用 MPAVItem 上的方法时也会崩溃,该方法已经被释放。我没有直接使用 MPAVItem,它是一个由 webview 自动为我的嵌入式视频创建和使用的对象。具体的故障转储是

Thread 0:
0   libobjc.A.dylib                 0x3b17c636 objc_msgSend + 22
1   Foundation                      0x30ef4aca +[NSConcreteNotification newTempNotificationWithName:object:userInfo:] + 118
2   Foundation                      0x30ef4a20 -[NSNotificationCenter postNotificationName:object:userInfo:] + 48
3   Foundation                      0x30ef9316 -[NSNotificationCenter postNotificationName:object:] + 26
4   MediaPlayer                     0x3183ff04 __53-[MPAVItem _playerItemNewAccessLogEntryNotification:]_block_invoke + 68

我必须让应用程序运行近一个小时,然后它才会崩溃。随着网页每 7 秒刷新一次,它会因进程过多、内存不足或访问 MPAVItem 而崩溃。我已经尝试了我在网上找到的所有内容,例如暂停视频、倒带、将视频 src 设置为“”、清除整个文档、将 webview 设置为 nil 等 javascript 技巧。没有什么可以完全移除这些对象。为了让事情变得更复杂,我将图像和视频放在 iframe 中。主文档中的代码实际上是控制 iframe 内容重新加载的“播放器”。 iframe 每 7 秒更改一次内容,整个页面(播放器)每 20 秒刷新一次。

【问题讨论】:

  • 我刚刚尝试按照其他人的建议通过 iOS on webViewDidFinishLoad 将

标签: html ios objective-c uiwebview webkit


【解决方案1】:

前段时间,我自己遇到了 UIWebView 的问题。 视频并非一直都在播放(有时会播放,有时不会播放)。

这不完全是您的问题,但请继续阅读。 ;) 我发现约束对于 webview 非常重要。 如果您没有设置约束,请设置它们并仔细检查它们是否已设置。

在我的情况下,视频正在重新尝试在视图中播放。这导致程序中的内存泄漏。因此,约束可能是内存泄漏的一个因素。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多