0

こんにちは、私はビデオ録画機能を実装しているアンドロイド カメラ アプリを開発しています。トグルボタンを使用してカメラからビデオに切り替えています。私は以下のコードを使用しています:

    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

私が間違っているところがわからない。助けてください!ありがとう!

4

1 に答える 1