我有一个网页视图,不断刷新并显示新的视频和图像。我怀疑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秒刷新一次。
答案 0 :(得分:1)
前段时间我自己遇到了一个UIWebView问题。 该视频并未一直显示(有时它确实有时没有显示)。
这不是你的问题,但请继续阅读。 ;) 我发现,约束对于webview非常重要。 如果您没有设置约束,请设置它们并仔细检查它们是否已设置。
在我的情况下,视频正在重试在视图中播放。这导致程序中的内存泄漏。所以约束可能是内存泄漏的一个因素。
希望这有帮助!