如何在三星 Galaxy S 上使用前置摄像头

Posted

技术标签:

【中文标题】如何在三星 Galaxy S 上使用前置摄像头【英文标题】:How to use Front Facing Camera on Samsung Galaxy S 【发布时间】:2011-05-13 13:56:37 【问题描述】:

我尝试了几个我在网上找到的答案,例如:

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

我错过了什么吗?我已经搜索过 ***,我知道之前有人问过这个问题,但似乎没有确认的解决方案,任何形式的帮助都将不胜感激。

注意:我在 2.1 平台上使用 Galaxy S

【问题讨论】:

【参考方案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

如果您需要更小的预览尺寸,您可以设置/缩小 SurfaceView 尺寸。

【讨论】:

【参考方案2】:

目前没有用于前置摄像头的标准 API;您将需要依赖硬件制造商拥有的任何(如果有)文档来使用他们的扩展来访问前置摄像头。这当然只适用于那些特定的设备。

请注意,编写诸如“camera-id”之类的原始字符串通常是您在官方 SDK 之外徘徊的好兆头。 :)

【讨论】:

是的,我已经知道了:)。 “camera-id”参数当然只适用于三星 Galaxy S,因为它不是官方 SDK 的一部分。但不幸的是,我还没有找到任何在此型号上使用前置摄像头的有用文档。【参考方案3】:

我认为这是添加一些我已经制定的细节的好地方。

如果您在纵向模式下使用前置摄像头,并且生成的文件被切割成带有绿色块的正方形,请尝试反转宽度和高度(预览和记录器)并将编码器设置为 H263。 ..

这解决了我在 2.3.3+ 上的三星 Galaxy S 上的问题...

【讨论】:

以上是关于如何在三星 Galaxy S 上使用前置摄像头的主要内容,如果未能解决你的问题,请参考以下文章

如何同时捕捉 Galaxy S4 中的前置和后置摄像头?

默认开启前置摄像头

三星Galaxy S22和 三星Galaxy S22+参数对比

我的相机应用程序在三星 Galaxy S 中给出空值

如何使用 Camera2 获取前置摄像头的 ID?

如何在android中使用前置摄像头[重复]