我需要在我的应用中打开前置摄像头作为默认设置。如果用户点击该按钮,则必须打开前置摄像头。
在我的代码中,我得到了当前Android设备中存在的摄像头数量,如果设备有两个摄像头,我将使用第二个摄像头的ID并在那里写一些摄像头逻辑。
请帮我构建此代码
答案 0 :(得分:0)
试试这段代码。它工作正常:))
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("Your_TAG", "Camera failed to open: " + e.getLocalizedMessage());
}
}
}
return cam;
}
答案 1 :(得分:0)
在此..try中添加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" />
答案 2 :(得分:0)
我使用这段代码,它会为你的希望工作:)
Camera c = null; // object that use
Camera.CameraInfo info = new Camera.CameraInfo();
int count = Camera.getNumberOfCameras();
for (int i = 0; i<cameraCount; i++) {
Camera.getCameraInfo(i, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
c = Camera.open(i);
} catch (RuntimeException e) {
// Handle
}
}
}
答案 3 :(得分:0)
只写这一行
相机mCamera = null;
mCamera = Camera.open(1); //用于前置摄像头
mCamera = Camera.open(0); //用于后置摄像头
答案 4 :(得分:0)
您应该只更改此行
相机mCamera = null;
mCamera = Camera.open(1); //用于前置摄像头
mCamera = Camera.open(0); //用于后置摄像头