こんにちは皆さん、特定の期間ビデオを録画する必要がありますが、これは正常に機能しています。しかし、実際のビデオ録画を開始する前に 30 秒の遅延を追加する必要がありますが、その間にカメラのプレビューを表示する必要があります。どうすれば達成できるのか気になります。カメラ オブジェクトの初期化のコードは次のとおりです。
mCamera = Camera.open();
surfaceHolder = recorderView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
My Recorder オブジェクトの初期化は次のとおりです。
File file = new File(path, filename);
mrec = new MediaRecorder();
mCamera.lock();
mCamera.unlock();
mrec.setCamera(mCamera);
mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mrec.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mrec.setVideoSize(320, 240);
mrec.setPreviewDisplay(surfaceHolder.getSurface());
mrec.setOutputFile(path + filename);
mrec.prepare();
最初の 30 秒間はカウントダウンタイマーを使用しており、その onfinsh 実装ではmrec.start()
、実際の記録を開始するために を呼び出していますが、それまではカメラのプレビューが表示されません。また、レコーダーが起動するまでに約 1 ~ 2 秒の遅延があります。