システムを他のデバイスと同期する必要があるため、ビデオを正確にシークする必要があるプロジェクトに取り組んでいます。動画再生に使用するOSはAndroidです。これまで MediaPlayer クラスを使用していましたが、キー フレームの量によっては、シークが非常に不正確になりました。
そこで私の次のアイデアは、デコードされた画像をキャッシュし、それを独自の再生クラスでラップすることです。これまでのところ、MediaExtractor クラスと MediaCodec クラスを使用してビデオを手動でデコードする方法を理解しています。クラス android.media.ImageReader はまさに私が欲しいもののようです。
しかし、私が理解していないのは、そのような android.media.Image を取得したら手動でレンダリングする方法ですか? YUV から RGB への変換を手動で行うことを防止したいのですが、代わりに、そのような画像を Surface に配置するか、SurfaceTexture にコピーできる方法をお勧めします。