こんにちは、私はビデオ録画機能を実装しているアンドロイド カメラ アプリを開発しています。トグルボタンを使用してカメラからビデオに切り替えています。私は以下のコードを使用しています:
private void prepareRecorder()
{
recorder = new MediaRecorder();
recorder.setPreviewDisplay(holder.getSurface());
if (usecamera)
{
camera.unlock();
recorder.setCamera(camera);
}
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setProfile(camcorderProfile);
}
public void surfaceCreated(SurfaceHolder holder)
{
if (usecamera)
{
camera = Camera.open();
try
{
camera.setPreviewDisplay(holder);
camera.startPreview();
previewRunning = true;
}
catch (IOException e)
{
Log.e(LOGTAG,e.getMessage());
e.printStackTrace();
releaseCamera();
}
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
Log.v(LOGTAG, "surfaceChanged");
if (!recording && usecamera)
{
if (previewRunning)
{
camera.stopPreview();
}
try
{
Parameters p = camera.getParameters();
p.setPreviewSize(camcorderProfile.videoFrameWidth,camcorderProfile.videoFrameHeight);
p.setPreviewFrameRate(camcorderProfile.videoFrameRate);
camera.setParameters(p);
camera.setPreviewDisplay(holder);
camera.startPreview();
previewRunning = true;
}
catch (IOException e)
{
e.printStackTrace();
}
prepareRecorder();
}
}
public void surfaceDestroyed(SurfaceHolder holder)
{
if (recording)
{
recorder.stop();
recording = false;
}
recorder.release();
if (usecamera)
{
previewRunning = false;
camera.lock();
camera.release();
}
}
しかし、問題は、カメラからビデオに切り替えると、カメラのプレビューが数秒間続き、カメラのメインのプレビューに戻ることです。そして、私は以下のエラーが発生しています:
08-30 17:52:27.843: E/MediaRecorder(6421): prepare failed: -15
私が間違っているところがわからない。助けてください!ありがとう!