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;
}
}
posten Sie bitte, was Sie bisher versucht haben. poste deinen Code nicht den Link. –