簡體   English   中英

如何在三星Galaxy S上使用前置攝像頭

[英]How to use Front Facing Camera on Samsung Galaxy S

我已經嘗試了幾個我在網上找到的答案,例如:

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,我知道之前已經問過這個問題,但似乎沒有確定的解決方案,任何形式的幫助都將受到贊賞。

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

無論如何經過幾次試驗和錯誤,我想出了如何做到這一點:

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; 您將需要依賴硬件制造商使用其擴展來訪問前置攝像頭的任何(如果有)文檔。 這當然只適用於那些特定的設備。

注意編寫像“camera-id”這樣的原始字符串通常是一個很好的跡象,你已經徘徊在官方SDK之外的樹林里。 :)

我認為這是一個很好的地方,可以添加我已經解決的一些細節。

如果您在縱向模式下使用前置攝像頭並且出現的結果文件被切割成正方形,並且綠色塊被拋出嘗試反轉寬度和高度(預覽和記錄器)並將編碼器設置為H263 ......

這解決了我在三星Galaxy S 2.3.3 +上的問題......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM