2014-11-24 129 views
0

我需要在我的应用程序中打开前置摄像头作为默认设置。如果用户点击按钮,前置摄像头必须打开。作为默认的Android开放式前置摄像头

在我的代码中,我得到了当前android设备中存在的摄像头数量,如果设备有两个摄像头,我将采用第二个摄像头的ID并在那里写入一些摄像头逻辑。

请帮我建立这个代码

+0

为什么所有的帽子?你的代码在哪里?叹。 – Raptor 2014-11-24 10:41:25

+1

可能重复:http://stackoverflow.com/a/4767832/4224337 – Rami 2014-11-24 10:42:29

+0

http://stackoverflow.com/questions/2779002/how-to-open-front-camera-on-android-platform 尝试出这个....... – 2014-11-24 11:22:15

回答

1

试试这段代码。它工作正常:)

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; 
} 
+3

而不是复制粘贴代码给出ref.link – 2014-11-24 10:48:01

0

添加androidmanifest XML文件在这个..try出

<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" /> 
+0

尝试更好地解释这是什么和它做什么。 – Refilon 2014-11-24 11:33:27

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 
    } 
    } 
} 
0

只写此行

相机mCamera = null;

mCamera = Camera.open(1); //用于前置摄像头

mCamera = Camera.open(0); //为后置摄像头

0

时,才应改变这一行,

相机mCamera = NULL;

mCamera = Camera.open(1); //用于前置摄像头

mCamera = Camera.open(0); //用于后置摄像头