如何检测是否有前置摄像头,以及如何达到并使用前置摄像头?如何检测是否有前置摄像头,以及如何达到并使用前置摄像头?
4
A
回答
1
如何检测是否有前置摄像头,以及是否有如何到达并使用前置摄像头?
有没有API,至少通过Android 2.2。幸运的是,即将推出的Gingerbread版本将增加对前置摄像头的内置支持。抱歉!
+0
谢谢您的回答。 – shiz 2010-10-14 22:34:03
18
如果使用API级9(的Android 2.3)以上时,可以执行以下方法来计算(第一)前置摄像头的索引:
int getFrontCameraId() {
CameraInfo ci = new CameraInfo();
for (int i = 0 ; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, ci);
if (ci.facing == CameraInfo.CAMERA_FACING_FRONT) return i;
}
return -1; // No front-facing camera found
}
然后可以使用索引为Camera.open
方法,如:
int index = getFrontCameraId();
if (index == -1) error();
Camera c = Camera.open(index);
来获得相关的相机。
5
Oak的代码将不支持SDK 21以上,所以我已经添加了这些行,使其可用:)
int getFrontCameraId(CameraManager cManager) {
if (Build.VERSION.SDK_INT < 22) {
Camera.CameraInfo ci = new Camera.CameraInfo();
for (int i = 0; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, ci);
if (ci.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) return i;
}
} else {
try {
for (int j = 0;j<cManager.getCameraIdList().length; j++) {
String[] cameraId = cManager.getCameraIdList();
CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId[j]);
int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
if (cOrientation == CameraCharacteristics.LENS_FACING_FRONT)
return j;
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
return -1; // No front-facing camera found
}
我已经更新橡树的代码,现在支持新camera2库还。
0
Kalpit,我不知道你是如何设法让代码工作的。我试图编辑你的答案,但完整的答案需要改变。这是我得到的。
@SuppressLint("NewApi")
int getFrontCameraId() {
if (Build.VERSION.SDK_INT < 22) {
Camera.CameraInfo ci = new Camera.CameraInfo();
for (int i = 0; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, ci);
if (ci.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) return i;
}
} else {
try {
CameraManager cManager = (CameraManager) getApplicationContext()
.getSystemService(Context.CAMERA_SERVICE);
String[] cameraId = cManager.getCameraIdList();
for (int j = 0;j<cameraId.length; j++) {
CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId[j]);
int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
if (cOrientation == CameraCharacteristics.LENS_FACING_FRONT)
return Integer.parseInt(cameraId[j]);
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
return -1; // No front-facing camera found
}
相关问题
- 1. 如何检测照片是否由前置摄像头拍摄
- 2. 检测照片是否与前置摄像头拍摄
- 3. 测试iPhone4上的前置摄像头或后置摄像头
- 4. 使用前置摄像头拍摄时未检测到脸部
- 5. 如何检查前置摄像头ID?捕获的图像也是来自前置摄像头的镜像。
- 6. 从前置摄像头切换到后置摄像头JS
- 7. 切换到前置摄像头和后置摄像头Android SurfaceView
- 8. 我如何检测库图像是来自前置摄像头还是后置摄像头
- 9. 如何用前视摄像头在前置摄像头中录制视频
- 10. 如何以编程方式检测android前置摄像头
- 11. 如何从前置摄像头
- 12. 如何翻转iphone前置摄像头
- 13. iPhone - 检测iDevice是否有前置摄像头
- 14. Android前置摄像头API
- 15. Android前置摄像头
- 16. Android 2.2前置摄像头
- 17. 在后置摄像头和前置摄像头之间切换
- 18. 同时打开android前置摄像头和后置摄像头
- 19. iOS SWIFT - WebRTC从前置摄像头变为后置摄像头
- 20. 如何获得前置摄像头,后置摄像头和音频AVCaptureDeviceDiscoverySession
- 21. 如何获取前置摄像头拍摄的图像路径
- 22. Android摄像头:前置摄像头镜像
- 23. 如何检查当前设备上是否有前置摄像头?
- 24. Android Camera2video使用前置摄像头
- 25. 使用前置摄像头(Xamarin.Android)
- 26. Android摄像头API 2自动对焦前置摄像头
- 27. 无法连接前置摄像头的摄像头服务?
- 28. 如何使用前置摄像头在摄像机中应用摄像头的色彩效果?
- 29. FaceDetector未检测到带有前置摄像头的脸部
- 30. iPhone4可以同时从前置摄像头和后置摄像头录制吗?
相关:http://stackoverflow.com/questions/3922042/how-to-detect-android-front-camera-programmatically(但没有答案的话) – 2010-10-14 21:31:27