2017-03-02 2 views
0

Wie stellen MediaRecorder Orientierung Landschaft oder PorträtWie MediaRecorder Ausrichtung auf Hoch- oder Querformat

Ich habe versucht, aus der MediaRecorder Klasse in Android

ich in diesem Code einen Blick hatte

einstellen http://www.truiton.com/2015/05/capture-record-android-screen-using-mediaprojection-apis/

ich möchte die Ausrichtung des Videos auf entweder aufgezeichnet werden Portrait- oder Landschafts

Wie kann das

Ich hatte einen Blick auf https://developer.android.com/reference/android/media/MediaRecorder.html#setOrientationHint(int)

Es gibt die Rotation in Int einzustellen erfolgen, welche Werte sollten wir Beziehungsweise für Landschafts- und Portrait verwenden

+0

posten Sie bitte, was Sie bisher versucht haben. poste deinen Code nicht den Link. –

Antwort

2

int: der Winkel im Uhrzeigersinn in Grad gedreht werden. Die unterstützten Winkel sind 0, 90, 180 und 270 Grad.

Sie können den Verweis von unten für MediaRecorder nehmen.

Sie benötigen die aktuelle Ausrichtung der Kamera zu bekommen und dann die Logik hinzufügen, um die Orientierung zu setzen, basierend auf der Frontkamera oder rückseitige Kamera:

Below für camera1API sind

Camera.CameraInfo camera_info = new Camera.CameraInfo() 
int camera_orientation = camera_info.orientation; 

unten für camera2API

CameraCharacteristics characteristics; 
CameraManager manager = (CameraManager)getSystemService(Context.CAMERA_SERVICE); 
characteristics = manager.getCameraCharacteristics(cameraIdS); 
int camera_orientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); 

Nachfolgend finden Sie gemeinsam für beide camera1API und camera2API

The int camera_orientation des Kamerabildes. Der Wert ist der Winkel, um den das Kamerabild im Uhrzeigersinn gedreht werden muss, damit es auf dem Display in seiner natürlichen Ausrichtung korrekt angezeigt wird. Es sollte 0, 90, 180 oder 270 sein. Angenommen, ein Gerät verfügt über einen natürlich hohen Bildschirm. Der nach hinten gerichtete Kamerasensor ist im Querformat montiert. Sie schauen auf den Bildschirm. Wenn die obere Seite des Kamerasensors mit der rechten Kante des Bildschirms in natürlicher Ausrichtung ausgerichtet ist, sollte der Wert 90 sein. Wenn die obere Seite eines nach vorne gerichteten Kamerasensors mit der rechten Seite des Bildschirms ausgerichtet ist, sollte der Wert 270.

private int getDeviceDefaultOrientation() { 
    WindowManager windowManager = (WindowManager)this.getContext().getSystemService(Context.WINDOW_SERVICE); 
    Configuration config = getResources().getConfiguration(); 
    int rotation = windowManager.getDefaultDisplay().getRotation(); 
    if(((rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) && 
      config.orientation == Configuration.ORIENTATION_LANDSCAPE) 
      || ((rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) &&  
      config.orientation == Configuration.ORIENTATION_PORTRAIT)) { 
     return Configuration.ORIENTATION_LANDSCAPE; 
    } 
    else { 
     return Configuration.ORIENTATION_PORTRAIT; 
    } 
} 

Set Orientierung Landschaft sein

int device_orientation = getDeviceDefaultOrientation(); 
int result; 
if (device_orientation == Configuration.ORIENTATION_PORTRAIT) { 
    // should be equivalent to onOrientationChanged(270) 
    if (camera_controller.isFrontFacing()) { 
    result = (camera_orientation + 90) % 360; 
    } else { 
    result = (camera_orientation + 270) % 360; 
    } 
} else { 
    // should be equivalent to onOrientationChanged(0) 
    result = camera_orientation; 
} 

Set Format auf Hochformat

int device_orientation = getDeviceDefaultOrientation(); 
int result; 
if (device_orientation == Configuration.ORIENTATION_PORTRAIT) { 
    // should be equivalent to onOrientationChanged(0) 
    result = camera_orientation; 
} else { 
    // should be equivalent to onOrientationChanged(90) 
    if (camera_controller.isFrontFacing()) { 
    result = (camera_orientation + 270) % 360; 
    } else { 
    result = (camera_orientation + 90) % 360; 
    } 
} 
+0

danke für die genaue Erklärung – 1234567

Verwandte Themen