如何在三星 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 上使用前置摄像头的主要内容,如果未能解决你的问题,请参考以下文章