如何在我的UIWebView中使用视频阻止MPAVItem崩溃我的iOS应用程序?

时间:2014-03-25 14:14:27

标签: html ios objective-c uiwebview webkit

我有一个网页视图,不断刷新并显示新的视频和图像。我怀疑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。我已经尝试了我在网上找到的所有内容,例如javascript技巧,如暂停视频,倒带,将视频src设置为'',清除整个文档,将webview设置为nil。没有什么能完全删除这些对象。为了使事情变得更复杂,我在iframe中提供了图像和视频。主文档中的代码实际上是控制iframe内容重新加载的“播放器”。 iframe每7秒更改一次内容,整个页面(播放器)每20秒刷新一次。

1 个答案:

答案 0 :(得分:1)

前段时间我自己遇到了一个UIWebView问题。 该视频并未一直显示(有时它确实有时没有显示)。

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

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

希望这有帮助!