0

ユーザーが自分の顔の写真を撮れるように、アプリでフロント カメラ ビューをプレビューするために surfaceview を使用します。プレビューの向きをデバイスの向きと同期させたいので、ユーザーがデバイスを回転させると、カメラのプレビューも回転します。以下は私のsurfaceCreatedです:

@Override
public void surfaceCreated(SurfaceHolder holder) {
  camera = openFrontFacingCamera();
  if (camera != null) {
    try {
      camera.setDisplayOrientation(90);
      camera.setPreviewDisplay(cameraPreview.getHolder());
      camera.startPreview();
    } catch (Exception e) {
      e.printStackTrace();
    }
  } else {
    myActivity.finish();
  }
}

これにより、デバイスが回転したときにプレビューが回転しますが、正しい方法ではありません。携帯電話を縦向きに持っていれば、このコードで問題ありません。ただし、どちらのランドスケープ モードでも、プレビューは 90 度ずれています。プレビューが常に真っ直ぐになるようにするにはどうすればよいですか? (逆の縦向きを除いて、とにかく電話がそのように回転するとは思いません)。画像がミラーリングされているかどうかは気にしません。多くの人が問題を抱えているようですが、私のアプリには関係ありません。私はそれが常に上面を持っていることを望んでいます.

4

1 に答える 1