我试过几个答案我已经从网络上找到,如:

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

如果你需要有一个较小的预览大小,您可以设置/分频的SurfaceView大小,而不是。

其他提示

有目前不是前置摄像头的标准API;你将需要依靠什么(如果有的话)文档中的硬件制造商使用其扩展访问前置摄像头。这当然只对那些特定设备的工作。

请注意写像“摄像机ID”原始字符串经常是你流浪到官方SDK的树林外的好兆头。 :)

我觉得这是一个很好的地方作为任何补充一些细节我已经工作了。

在的情况下你使用面向在纵向模式照相机的前部和在生成的文件出来切割成与试抛出反相的宽度和高度(预览和记录器)和设置编码器H263绿色块正方形。 ..

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top