Как использовать переднюю камеру на Samsung Galaxy S - PullRequest
8 голосов
/ 22 ноября 2010

Я попробовал несколько ответов, которые нашел в Интернете, например:

Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
mCamera.setParameters(parameters);

или

mMediaRecorder.setVideoSource(2);

Но это не работает. Я также установил разрешения для файла манифеста:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

Я что-то упускаю? Я искал StackOverflow и знаю, что об этом уже спрашивали, но, похоже, нет подтвержденного решения по этому вопросу, любая помощь будет признательна.

Примечание: я использую Galaxy S на платформе 2.1

Ответы [ 3 ]

12 голосов
/ 23 ноября 2010

В любом случае, после нескольких проб и ошибок, я понял, как это сделать:

Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480) this is supported front camera preview size @ Samsung Galaxy S
mCamera.setParameters(parameters);

Или, если вам нужно использовать его с MediaRecorder:

MediaRecorder mMediaRecorder = new MediaRecorder();
Camera mCamera = Camere.open();
Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480)
mCamera.setParameters(parameters);
mCamera.unlock(); // unlock, to give other process to access it otherwise it can't be used later
mMediaRecorder.setCamera(mCamera);
// continue with mMediaRecorder standard routines here

Есливам нужен меньший размер предварительного просмотра, вместо этого вы можете установить / уменьшить размер SurfaceView.

2 голосов
/ 22 ноября 2010

В настоящее время нет стандартного API для фронтальных камер;вам нужно будет полагаться на любую (если таковую) документацию, которую производитель оборудования имеет для использования своих расширений для доступа к фронтальной камере.Конечно, это будет работать только на этих конкретных устройствах.

Обратите внимание, что написание необработанных строк, таких как «идентификатор камеры», часто является хорошим признаком того, что вы забрели в лес за пределами официального SDK.:)

0 голосов
/ 10 октября 2012

Я думаю, что это хорошее место, чтобы добавить некоторые детали, которые я разработал.

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

Это решило проблему на моем Samsung Galaxy S на 2.3.3 + ...

...