2016-05-16 19 views
2

Ein Bildschirm zeigen kurze Video mit AVPlayer in meiner IOS App. Ich verlasse und betrete diesen Bildschirm einige Male erfolgreich, aber nach sieben Mal und mehr bekomme ich einen leeren Bildschirm und die IsReadyForDisplay-Eigenschaft von AVPlayerLayer ist "NEIN".AVPlayer ist nicht bereit für die Anzeige nach dem erneuten Eingeben auf einen Bildschirm zum siebten Mal

Ich pausiere AVPlayer (und setze auf Null) und entferne AVPlayerLayer aus der Ebene der Ansicht, wenn ich diesen Bildschirm verlasse. Es scheint mir, dass es nicht Speicherverbrauch Problem (17MB Nutzung).

Ich denke, das Problem ist AVPlayer Puffer oder eine andere Komponente, die einen Block auf diese Weise AVPlayer kann nicht aus der Videodatei lesen, aber ich habe keine Möglichkeit zum Reinigen/oder löschen Sie diesen Puffer/Block.

Hat jemand dieses Problem schon früher gehabt oder weiß, warum bekomme ich diesen leeren Bildschirm im siebten Eingang?

Vielen Dank im Voraus,

Eli

+0

Haben Sie dieses Problem gelöst? Wir kämpfen jetzt absolut das gleiche Problem, würde für jede Info schätzen! –

Antwort

1

Aus meiner Erfahrung kann passieren, dass, wenn Sie Ansichten mit variablen layerClass außer Kraft gesetzt, und irgendwie ist es nicht aus dem Speicher ausgelöscht erhalten, und jedes Mal, die Sie besuchen Dein VC mit Video-Layern wird es nur schlimmer werden.

Anstatt die Eigenschaft videoView layerClass zu überschreiben, versuchen Sie, Ihre Video-Layer manuell einzufügen, indem Sie sublayerSublayer einfügen.

Als in der AnsichtDidDisappear versuchen, removeFromSuperView auf alle von ihnen aufrufen und zwingen sie zu Null, um sicherzustellen, dass alles, was mit ihnen verbunden ist, aus dem Speicher gereinigt wird.

Vielleicht ist es nicht die "richtige" und die perfekte Art, das zu tun, aber am Ende gab es für die visuelle Erscheinung keine Veränderungen für mich.

Auch ich würde gerne wissen, was die wahre Ursache ist, weil das Lesen aller Apple-Dokumentation nicht geholfen hat.