5

ビデオを一連のビットマップにデコードして、それらを変更できるようにし、それらを圧縮して Android のビデオ ファイルに戻す必要があります。

getFrameAtTimeこれを使用して画像シーケンスに保存することでこれを管理する予定です。次に、シーケンス内の画像を変更して、コードをムービーに戻すことができます。しかし、これには2つの問題があります:

  • まず、私が読んだように、これgetFrameAtTimeはサムネイルを作成するためのものであり、正しいフレームを返すことを保証するものではありません。これにより、ビデオが遅延します。
  • 次に、画像の保存と読み込みに時間がかかります。

デコードを行う適切な方法は MediaExtractor を使用することであると読みましたが、これは問題ありませんが、直接レンダリングする例しかありませんsurfaceViewoutputBufferをビットマップに変換する方法はありますか?

APIレベル16以上で動作させるために必要です。

4

2 に答える 2

1

There are many people saying that the method onFrameAvailable() is never called. Well, the listener should be in a different thread than the main thread. To set the listener do this: (where this is the class listener that implements SurfaceTexture.IOnFrameAvailableListener):

mSurfaceTexture.SetOnFrameAvailableListener(this);
于 2016-01-12T19:49:03.673 に答える