0

カメラアクティビティを作成し、マニフェストからその向きをポートレートに固定しました。方向がロックされているときにデバイスの向きを聞く

<activity 
      android:name=".ui.activity.CameraActivity" 
      android:screenOrientation="portrait" 
      > 

私はメディアーコーダーでビデオを撮っているので、正しい位置にビデオを保存するためには向きを理解する必要があります。

mediaRecorder.setOrientationHint(orentation);向きが固定されていない場合は、私は、マニフェストからこの関数から

public int setCameraDisplayOrientation(Activity activity, 
              int cameraId, android.hardware.Camera camera) { 
     android.hardware.Camera.CameraInfo info = 
       new android.hardware.Camera.CameraInfo(); 
     android.hardware.Camera.getCameraInfo(cameraId, info); 
     int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); 
     int degrees = 0; 
     switch (rotation) { 
      case Surface.ROTATION_0: 
       degrees = 0; 
       break; 
      case Surface.ROTATION_90: 
       degrees = 90; 
       break; 
      case Surface.ROTATION_180: 
       degrees = 180; 
       break; 
      case Surface.ROTATION_270: 
       degrees = 270; 
       break; 
     } 

     int result; 
     if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
      result = (info.orientation + degrees) % 360; 
      result = (360 - result) % 360; // compensate the mirror 
     } else { // back-facing 
      result = (info.orientation - degrees + 360) % 360; 
     } 

     Camera.Parameters params = camera.getParameters(); 
     params.setRotation(result); 
     camera.setParameters(params); 
     camera.setDisplayOrientation(result); 
     return result; 
    } 

を向きを取得しています

このメソッドが正常に動作しますが、私は自分の動画が縦長状態でのみ保存の向きを修正する必要があるとして。

風景モードを決定するのに手伝ってください。

答えて

0

あなたはビデオモードでの活動の方向を変更するプログラムで、この問題を解決することができます。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

ちょうどカメラモード(画像/動画)を検出し、それに応じて

を向きを変更
関連する問題