2014-11-24 3 views
0

Мне нужно открыть переднюю камеру по умолчанию в моем приложении. Если пользователь нажимает кнопку, передняя камера должна быть открыта.Открытая передняя камера Android по умолчанию

В моем коде я получаю количество камер, присутствующих в текущем устройстве Android, и если у устройства две камеры, я возьму идентификатор второй камеры и напишу там какую-нибудь логику камеры.

Пожалуйста, помогите мне построить этот код

+0

ПОЧЕМУ ВСЕ КАПЫ? и где ваш код? вздох. – Raptor

+1

возможно дубликат: http://stackoverflow.com/a/4767832/4224337 – Rami

+0

http://stackoverflow.com/questions/2779002/how-to-open-front-camera-on-android-platform Try out this ....... –

ответ

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

Вместо кода copy-paste, заданного ref.link –

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

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); // для задней камеры

Смежные вопросы