2014-03-25 4 views
6

Ich habe eine Webansicht, die ständig aktualisiert und neue Videos und Bilder zeigt. Ich vermute, dass die Objekte in der HTML-Seite nicht richtig freigegeben sind, weil ich langsam wachsenden Speicher habe. Ich bekomme auch einen Absturz beim Aufrufen einer Methode auf MPAVItem, die bereits freigegeben wurde. Ich verwende MPAVItem nicht direkt, sondern ein Objekt, das von der Webansicht für meine eingebetteten Videos automatisch erstellt und verwendet wird. Der spezifische Absturzspeicher istWie kann ich MPAVItem stoppen, wenn ich meine iOS App mit Videos in meinem UIWebView abstürze?

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 

Ich muss die App für fast eine Stunde laufen lassen, bevor es abstürzt. Wenn die Webseite alle 7 Sekunden aktualisiert wird, kommt es entweder zum Absturz von zu vielen Prozessen, zu wenig Arbeitsspeicher oder zum Zugriff auf MPAVItem. Ich habe alles versucht, was ich im Netz gefunden habe, wie JavaScript-Tricks, wie das Video pausieren, zurückspulen, video src auf '' setzen, das gesamte Dokument löschen und webview auf null setzen. Nichts entfernt diese Objekte vollständig. Um die Dinge komplizierter zu machen, habe ich die Bilder und Videos in einem Iframe. Der Code im Hauptdokument ist eigentlich der "Player", der das Neuladen des Iframe-Inhalts steuert. Der iframe ändert den Inhalt alle 7 Sekunden und die gesamte Seite (der Player) wird alle 20 Sekunden aktualisiert.

+0

Ich habe gerade versucht, in das

Antwort

1

Vor einiger Zeit hatte ich selbst ein Problem mit einem UIWebView. Das Video zeigte nicht die ganze Zeit (manchmal tat es manchmal nicht).

Dies ist nicht genau dein Problem, aber lesen Sie weiter. ;) Was ich entdecke, war, dass die Einschränkungen sehr wichtig für das Webview sind. Wenn Sie die Einschränkungen nicht festgelegt haben, setzen Sie sie bitte und überprüfen Sie sie, wenn sie wahrscheinlich gesetzt sind.

In meinem Fall versuchte das Video erneut, in der Ansicht wiedergegeben zu werden. Dies führte zu einem Speicherverlust im Programm. Daher können die Einschränkungen ein Faktor im Speicherleck sein.

Hoffe, das hilft!

Verwandte Themen