ユーザーがビデオを視聴し、必要に応じてフルスクリーンで開き、デフォルトのビューに戻ることができるビデオアプリに取り組んでいます。私は ExoPlayer を使用していましたが、最近の説明のためにデフォルトの MediaPlayer に切り替えました。
プレーヤーのサーフェスを「その場で」変更する必要があります。アクティビティ間でビデオを表示するために同じプレーヤーを使用する必要があり、画像を表示するのに遅延はありません。Exoplayer を使用して、デコーダーは次のキーフレームが空の Surface にピクセルを描画するのを待ちます。
したがって、同じサーフェスを使用する必要があるため、毎回新しいサーフェスをプッシュする必要はなく、サーフェスをビューの親にアタッチするだけです。Surface は同じままでかまいませんが、SurfaceView をデタッチして別のアクティビティから取得し、再アタッチすると、内側の Surface が破棄されます。
では、異なるアクティビティ間で同じ Surface を維持する方法はありますか? サービス付き?
質問が理解するのが少し奇妙であることは知っています。指定された部分がリクエストであるとコメントで説明します。