Как использовать переднюю переднюю камеру на Samsung Galaxy S
-
27-09-2019 - |
Вопрос
Я попробовал несколько ответов, который я нашел через Интернет, например:
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
Решение
В любом случае после нескольких испытаний и ошибок я понял, как это сделать:
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
Если вам нужно иметь меньшего размера предварительного просмотра, вы можете установить / масштабировать размер вашего размера поверхности.
Другие советы
В данный момент не стандартная API для камер переднего лица; Вам нужно будет полагаться на любой (если какая-либо) документация, который производитель аппаратного обеспечения имеет использование их расширений для доступа к передней лицевой камере. Это будет, конечно, работать только на этих конкретных устройствах.
Примечание. Написание необработанных струн, таких как «Camera-ID», часто является хорошим знаком, который вы бродили в лесу за пределами официального SDK. :)
Я думаю, что это так же хорошее место, как любое, чтобы добавить некоторые детали, которые я разработал.
В случае, если вы используете фронтальную камеру в портретном режиме, и полученный файл выходит на квадраты с помощью зеленых блоков, выбрасываемых в попытке отсоединить ширину и высоту (как предварительный просмотр, так и рекордер), и устанавливая эндотер к H263 ...
Это решило проблему на моем Samsung Galaxy S на 2.3.3 + ...