Camera flash mode detect

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 8 years ago
parent a5e37b814d
commit 6acb7726fc

@ -7,8 +7,8 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true" />
<application <application
android:allowBackup="true" android:allowBackup="true"

@ -269,9 +269,17 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
} }
Camera.Parameters params = mCamera.getParameters(); Camera.Parameters params = mCamera.getParameters();
params.setPictureSize(mPreviewWidth, mPreviewHeight);
params.setPreviewSize(mPreviewWidth, mPreviewHeight);
int[] range = adaptFpsRange(SrsEncoder.VFPS, params.getSupportedPreviewFpsRange());
params.setPreviewFpsRange(range[0], range[1]);
params.setPreviewFormat(ImageFormat.NV21);
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
params.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
List<String> supportedFocusModes = params.getSupportedFocusModes(); List<String> supportedFocusModes = params.getSupportedFocusModes();
if (!supportedFocusModes.isEmpty()) { if (supportedFocusModes != null && !supportedFocusModes.isEmpty()) {
if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) { if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
} else if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) { } else if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
@ -282,17 +290,15 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
} }
} }
params.setPictureSize(mPreviewWidth, mPreviewHeight); List<String> supportedFlashModes = params.getSupportedFlashModes();
params.setPreviewSize(mPreviewWidth, mPreviewHeight); if (supportedFlashModes != null && !supportedFlashModes.isEmpty()) {
int[] range = adaptFpsRange(SrsEncoder.VFPS, params.getSupportedPreviewFpsRange()); if (supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
params.setPreviewFpsRange(range[0], range[1]); params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
params.setPreviewFormat(ImageFormat.NV21); } else {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); params.setFlashMode(supportedFlashModes.get(0));
params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
params.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
if (!params.getSupportedFocusModes().isEmpty()) {
params.setFocusMode(params.getSupportedFocusModes().get(0));
} }
}
mCamera.setParameters(params); mCamera.setParameters(params);
mCamera.setDisplayOrientation(mPreviewRotation); mCamera.setDisplayOrientation(mPreviewRotation);

Loading…
Cancel
Save