From dbf34fc9c9c606079130afa8586db280c7fa145c Mon Sep 17 00:00:00 2001 From: xufuji456 <839789740@qq.com> Date: Tue, 12 Apr 2022 09:36:16 +0800 Subject: [PATCH] Feature: listening the orientation of screen --- .../com/frank/live/camera/Camera2Helper.java | 32 +++++++++---------- app/src/main/AndroidManifest.xml | 3 +- .../com/frank/ffmpeg/activity/LiveActivity.kt | 6 ++++ 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/Live/src/main/java/com/frank/live/camera/Camera2Helper.java b/Live/src/main/java/com/frank/live/camera/Camera2Helper.java index d13cfde..77c7354 100644 --- a/Live/src/main/java/com/frank/live/camera/Camera2Helper.java +++ b/Live/src/main/java/com/frank/live/camera/Camera2Helper.java @@ -86,32 +86,32 @@ public class Camera2Helper { start(); } - private int getCameraOri(int rotation, String cameraId) { - int degrees = rotation * 90; + private int getCameraOrientation(int rotation, String cameraId) { + int degree = rotation * 90; switch (rotation) { case Surface.ROTATION_0: - degrees = 0; + degree = 0; break; case Surface.ROTATION_90: - degrees = 90; + degree = 90; break; case Surface.ROTATION_180: - degrees = 180; + degree = 180; break; case Surface.ROTATION_270: - degrees = 270; + degree = 270; break; default: break; } int result; if (CAMERA_ID_FRONT.equals(cameraId)) { - result = (mSensorOrientation + degrees) % 360; + result = (mSensorOrientation + degree) % 360; result = (360 - result) % 360; } else { - result = (mSensorOrientation - degrees + 360) % 360; + result = (mSensorOrientation - degree + 360) % 360; } - Log.i(TAG, "getCameraOri: " + rotation + " " + result + " " + mSensorOrientation); + Log.i(TAG, "getCameraOrientation, result=" + result); return result; } @@ -120,19 +120,19 @@ public class Camera2Helper { @Override public void onSurfaceTextureAvailable(SurfaceTexture texture, int width, int height) { - Log.i(TAG, "onSurfaceTextureAvailable: "); + Log.i(TAG, "onSurfaceTextureAvailable..."); openCamera(); } @Override public void onSurfaceTextureSizeChanged(SurfaceTexture texture, int width, int height) { - Log.i(TAG, "onSurfaceTextureSizeChanged: "); + Log.i(TAG, "onSurfaceTextureSizeChanged, width=" + width + "--height=" + height); configureTransform(width, height); } @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture texture) { - Log.i(TAG, "onSurfaceTextureDestroyed: "); + Log.i(TAG, "onSurfaceTextureDestroyed..."); return true; } @@ -151,7 +151,7 @@ public class Camera2Helper { mCameraDevice = cameraDevice; createCameraPreviewSession(); if (camera2Listener != null) { - camera2Listener.onCameraOpened(mPreviewSize, getCameraOri(rotation, mCameraId)); + camera2Listener.onCameraOpened(mPreviewSize, getCameraOrientation(rotation, mCameraId)); } } @@ -179,6 +179,7 @@ public class Camera2Helper { } }; + private final CameraCaptureSession.StateCallback mCaptureStateCallback = new CameraCaptureSession.StateCallback() { @Override @@ -286,7 +287,7 @@ public class Camera2Helper { context = null; } - private void setUpCameraOutputs(CameraManager cameraManager) { + private void setUpCameraOutput(CameraManager cameraManager) { try { if (configCameraParams(cameraManager, specificCameraId)) { return; @@ -330,7 +331,7 @@ public class Camera2Helper { private void openCamera() { CameraManager cameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); - setUpCameraOutputs(cameraManager); + setUpCameraOutput(cameraManager); configureTransform(mTextureView.getWidth(), mTextureView.getHeight()); try { if (!mCameraOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) { @@ -463,7 +464,6 @@ public class Camera2Helper { } else if (Surface.ROTATION_180 == rotation) { matrix.postRotate(180, centerX, centerY); } - Log.i(TAG, "configureTransform: " + getCameraOri(rotation, mCameraId) + " " + rotation * 90); mTextureView.setTransform(matrix); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e766a9d..172c5a6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,6 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" - android:screenOrientation="landscape" android:supportsRtl="true" android:theme="@style/AppTheme" tools:replace="android:name"> @@ -39,7 +38,7 @@ + android:configChanges="orientation" /> diff --git a/app/src/main/java/com/frank/ffmpeg/activity/LiveActivity.kt b/app/src/main/java/com/frank/ffmpeg/activity/LiveActivity.kt index 392a2a1..5b235bc 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/LiveActivity.kt +++ b/app/src/main/java/com/frank/ffmpeg/activity/LiveActivity.kt @@ -2,6 +2,7 @@ package com.frank.ffmpeg.activity import android.annotation.SuppressLint import android.content.IntentFilter +import android.content.res.Configuration import android.media.AudioFormat import android.net.ConnectivityManager import android.os.Bundle @@ -153,6 +154,11 @@ open class LiveActivity : BaseActivity(), CompoundButton.OnCheckedChangeListener } } + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + Log.i(TAG, "onConfigurationChanged, orientation=" + newConfig.orientation) + } + companion object { private val TAG = LiveActivity::class.java.simpleName