私は Android 用のマルチメディア ビデオ処理アプリケーションに取り組んでいますが、少し問題が発生しました。FragmentPagerAdapter
ビデオ処理のさまざまなステップのために、内部に多数の異なるフラグメントを持つクラスを使用しています。
私の最初のものには、さまざまな再生コントロールとともに、それをフィードするaと aがFragment
含まれています。私の問題は、フラグメント 1 (SurfaceView を使用) からフラグメント 2 (現時点では空) にスワイプすると発生します。まだ を呼び出していない場合、何も異常は発生せず、通常どおりフラグメント間をスワイプできます。ただし、呼び出すと、次の にスワイプすると、 をアイドル状態にしてフレームを にフィードしていなくても、画面全体が点滅し始めます。これを止める唯一の方法は、3 番目にスワイプしてビューを破棄するか、ホームまたは戻るボタンでアプリケーションを終了してビューを破棄することで、含まれているビューと一緒にサーフェスを破棄することです。SurfaceView
MediaPlayer
start()
start()
Fragment
MediaPlayer
SurfaceView
Fragment
FragmentPagerAdapter
Fragment
SurfaceView
レンダリング スレッドが何らかの理由でメインの UI スレッドに干渉している可能性があることを除けば、これがなぜ起こっているのか、私の人生では理解できません。LogCat にも何も異常が表示されないので、少し行き詰まっています。テストハードウェアとしてAndroid 4.1を使用してGalaxy Nexusを実行しています。
どんな助けでも大歓迎です!
JT
更新:setPrimaryItem()
のメソッドをオーバーライドして、ビデオ プレーヤーが表示されなくなったときにを階層からFragmentPagerAdapter
削除するメソッドを呼び出すことで(コンテナーを使用して)、アクティブなときにを元に戻すことで、今のところ回避策を見つけることができました。また。残念ながら、これが発生するまでにはまだ少し時間がかかるため、追加の考えがある場合は、感謝します!SurfaceView
removeView()
LinearLayout
Fragment
SurfaceView