数時間後、私はそのための素晴らしい解決策を得ました。
最善の方法ではないかもしれませんが、私にとっては十分です。
private long start;
private long end;
private long period;
まず、メディアレコーダーが起動した直後に開始時刻を取得します。
private void startRecording()
{
mMediaRecoder.start();
start = System.currentTimeMillis();
}
次に、スクリーンショットを撮るために画面/ボタンを押したときに、期間を保存します。
private void captureImage()
{
end = System.currentTimeMillis();
period = end - start;
}
最後に、記録を停止するときに、ピリオドとメディアレトリバーを使用してビットマップを取得します。
private void saveVideo()
{
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
//path -> the path to the video
retriever.setDataSource(path);
Bitmap bitmap = retriever.getFrameAtTime(period * 1000,MediaMetadataRetriever.OPTION_CLOSEST);
}
お役に立てば幸いです。