更一般地说,如果设备有多个嵌入式摄像头, 有没有办法特别初始化其中一个?
我在 Android 引用文档中没有找到它:
- https://developer.android.com/reference/android/hardware/Camera.html
- https://developer.android.com/reference/android/hardware/camera2/package-summary.html
- https://developer.android.com/reference/android/hardware/camera2/CameraManager.html
三星 SHW-M100S 有两个摄像头。如果没有提到使用两个摄像头,你知道三星是怎么做到的吗……?
最佳答案
private Camera openFrontFacingCameraGingerbread() {
int cameraCount = 0;
Camera cam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
cameraCount = Camera.getNumberOfCameras();
for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
cam = Camera.open(camIdx);
} catch (RuntimeException e) {
Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage());
}
}
}
return cam;
}
在AndroidManifest.xml
文件中添加以下权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
注意:此功能在 Gingerbread(2.3) 及以上 Android 版本中可用。
关于android - 如何在Android平台打开 "front camera"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2779002/