2010-11-22 11 views
8

Ich habe mehrere Antwort habe ich versucht, über die Bahn, wie gefunden habe:Wie vorne Kamera auf Samsung Galaxy S verwenden

Camera.Parameters parameters = mCamera.getParameters(); 
parameters.set("camera-id", 2); 
mCamera.setParameters(parameters); 

oder

mMediaRecorder.setVideoSource(2); 

Aber es funktioniert nicht Arbeit. Ich habe auch Berechtigungen für die Manifest-Datei festgelegt:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

Bin ich auf etwas verpasst? Ich habe StackOverflow gesucht und ich weiß, dass dies schon einmal gefragt wurde, aber es scheint keine bestätigte Lösung dafür zu geben, jede Art von Hilfe wäre willkommen.

Hinweis: Ich verwende Galaxy S auf der Plattform 2.1

Antwort

12

Auf jeden Fall nach einigen Versuch und Irrtum, dachte ich es heraus, wie es geht:

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); 

Oder, wenn Sie es mit MediaRecorder verwenden müssen:

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 

Wenn Sie Wenn Sie eine kleinere Vorschaugröße benötigen, können Sie stattdessen Ihre SurfaceView-Größe festlegen/verkleinern.

2

Zur Zeit ist keine Standard-API für nach vorn gerichteten Kameras; Sie müssen sich auf die Dokumentation verlassen, die der Hardwarehersteller für die Verwendung seiner Erweiterungen verwendet, um auf die Frontkamera zuzugreifen. Dies funktioniert natürlich nur auf diesen spezifischen Geräten.

Hinweis Schreiben roher Strings wie "Kamera-ID" ist oft ein gutes Zeichen, dass Sie außerhalb des offiziellen SDK in den Wald gewandert sind. :)

+4

Ja, das weiß ich schon :). Der "Kamera-ID" -Parameter funktioniert natürlich nur im Samsung Galaxy S, da er nicht Teil des offiziellen SDK ist. Leider habe ich bei diesem Modell keine weitere hilfreiche Dokumentation mit Frontkamera gefunden. –

+0

@MuhammadAbdullah dann hier teilen ... –

0

Ich denke, das ist so gut wie ein Ort, um einige Details hinzuzufügen, die ich ausgearbeitet habe.

Wenn Sie die Frontkamera im Hochformat verwenden und die resultierende Datei in Quadrate mit grünen Blöcken geschnitten wird, versuchen Sie, die Breite und Höhe umzukehren (Vorschau und Recorder) und den Encoder auf H263 einzustellen ...

Das löste das Problem auf meinem Samsung Galaxy S auf 2.3.3 + ...