0

私はアンドロイドで(インテントを使用せずに)カメラアプリを開発しています。ここで、オートフォーカスとフラッシュライト機能の両方を実装しています。いずれかの機能を実装すると正常に動作します。しかし、オート フォーカスとフラッシュ ライト機能の両方を追加すると、LG nexus やその他のフラッシュ ライトを備えた携帯電話に力を与えます。オートフォーカスとフラッシュライトに以下のコードを使用しています。

public boolean onKeyDown(int keyCode, KeyEvent event) 
{
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
    {
        event.startTracking();
        camera.autoFocus(autoFocusCallback);
        Parameters p = camera.getParameters();
        p.setFocusMode(Parameters.FOCUS_MODE_AUTO);

        if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
        {

            p.setFlashMode(Parameters.FLASH_MODE_ON);
            camera.setParameters(p);
            camera.startPreview();
            camera.takePicture(shutterCallback, rawCallback, jpgCallback);
        }

        else
        {
            camera.startPreview();
            camera.takePicture(shutterCallback, rawCallback, jpgCallback);
        }
        return true;

    }
    return super.onKeyDown(keyCode, event);
}

     private AutoFocusCallback autoFocusCallback = new AutoFocusCallback() 
    {

     @Override
     public void onAutoFocus(boolean autoFocusSuccess, Camera camera)
      {
            camera.takePicture(shutterCallback, rawCallback, jpgCallback);
              if (autoFocusHandler != null)
              {
                 Message message = autoFocusHandler.obtainMessage(autoFocusMessage, success);
                 autoFocusHandler.sendMessageDelayed(message, AUTOFOCUS_INTERVAL_MS);
                  autoFocusHandler = null;
               }
               else
               {

               }
    }
};

これは私が取得しているエラーログです。

http://txtup.co/WCYjl

何が問題なのですか。助けてください!ありがとう!

4

1 に答える 1

0

Just had a quick read through the Camera docs, and it looks like you've missed the Surface Holder.

Important: Pass a fully initialized SurfaceHolder to setPreviewDisplay(SurfaceHolder). Without a surface, the camera will be unable to start the preview.

Have a read through the docs: http://developer.android.com/reference/android/hardware/Camera.html

Here is an answer which shows how to use this: https://stackoverflow.com/a/3964460/2045570

于 2013-08-27T04:40:41.693 に答える