たくさんの検索と数日間の実験の後、私は簡単な解決策を見つけられませんでした。
ユーザーが画面上のペットと対話するアプリを開発しています。彼にそれをビデオとして保存させたいと思います。
アプリ自体の画面をキャプチャする「簡単な」方法はありますか?
回避策を見つけました(毎秒いくつかのビットマップを保存してからエンコーダーに渡す)が、重すぎるようです。15fpsのフレームレートでも満足します
それは可能だと思われます。つまり、これを行う同様のアプリがあります。これは「トーキングトム」と呼ばれます。
たくさんの検索と数日間の実験の後、私は簡単な解決策を見つけられませんでした。
ユーザーが画面上のペットと対話するアプリを開発しています。彼にそれをビデオとして保存させたいと思います。
アプリ自体の画面をキャプチャする「簡単な」方法はありますか?
回避策を見つけました(毎秒いくつかのビットマップを保存してからエンコーダーに渡す)が、重すぎるようです。15fpsのフレームレートでも満足します
それは可能だと思われます。つまり、これを行う同様のアプリがあります。これは「トーキングトム」と呼ばれます。
それは本当にあなたがあなたの「ペットビュー」を実装する方法に依存します。キャンバスに描いていますか?OpenGl ES?通常のAndroidビュー階層?
とにかく、コメントの1つが言ったような魔法の「recordScreenToVideo()」はありません。
必要がある:
「フレーム」を表すビットマップを取得します。これは、ビューの実装方法によって異なります。自分で描画する場合(CanvasまたはOpenGL)、生のピクセルバッファをフレームとして保存します。通常のビュー階層を使用する場合は、AndroidのonDrawをサブクラス化し、キャンバスに表示される「フレーム」を保存します。システムがonDrawを呼び出す頻度は、画面の実際の「フレームレート」以上になります。必要に応じて、後でフレームを複製して15fpsのビデオを提供します。
フレームをエンコードします。あなたはすでにそれを行うためのメカニズムを持っているようです、あなたはそれをより効率的にする必要があります。
エンコーディングを最適化する方法:
お役に立てば幸い