Ich arbeite an einer Multimedia-Videoverarbeitungsanwendung für Android, und ich habe in ein bisschen ein Problem laufen. Ich benutze die FragmentPagerAdapter
Klasse mit einer Reihe von verschiedenen Fragmenten für verschiedene Schritte der Videoverarbeitung.Android Surface verursacht Bildschirm flimmern
Meine erste Fragment
enthält eine SurfaceView
und eine MediaPlayer
, die es zusammen mit verschiedenen Wiedergabesteuerungen einspeist. Mein Problem passiert, wenn ich von Fragment 1 (mit der SurfaceView) zu Fragment 2 wische (momentan leer). Wenn ich start()
noch nicht aufgerufen habe, passiert nichts Ungewöhnliches und ich kann normalerweise zwischen den Fragmenten wischen. Sobald ich start()
jedoch aufrufen, beginnt der gesamte Bildschirm zu blinken, wenn ich zum nächsten Fragment
streichen, auch wenn ich die MediaPlayer
im Ruhezustand gesetzt haben und es keine Frames SurfaceView
Fütterung. Das einzige, was hält diese die Oberfläche der dritten Fragment
durch Streichen mit dem Aufnahme Ansicht zerstört so zerstört die FragmentPagerAdapter
Fragment
ein oder Verlassen der Anwendung über das Haus oder Zurück-Taste, um die Ansicht zerstört wird.
Ich kann nicht für das Leben von mir herausfinden, warum das passiert, anders als vielleicht der SurfaceView
Rendering-Thread ist irgendwie störend mit dem Haupt-UI-Thread. Nichts Ungewöhnliches erscheint auch auf LogCat, also bin ich ein bisschen festgefahren. Ich betreibe ein Galaxy Nexus mit Android 4.1 als meine Testhardware.
Jede Hilfe wäre willkommen!
JT
UPDATE: Ich habe es geschafft, durch Überschreiben der setPrimaryItem()
Methode in der FragmentPagerAdapter
eine Abhilfe für jetzt zu finden, ein Verfahren zu nennen, die die SurfaceView
aus der Hierarchie entfernt (removeView()
auf seinem LinearLayout
Behälter mit) Wenn der Videoplayer Fragment
nicht mehr angezeigt wird und die SurfaceView
wieder aktiviert wird, wenn sie wieder aktiv ist. Es ist immer noch ein wenig blinkend, wenn das passiert, leider, wenn jemand zusätzliche Gedanken hat, wäre ich dankbar!
überprüfen. Ihr Problem ist ähnlich zu diesem: [Link] (http://stackoverflow.com/questions/8772862/surfaceview-flashes-black-on-load) – RATHI