Domanda

Ho provato diversi risposta che ho trovato sul web, come ad esempio:

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

o

mMediaRecorder.setVideoSource(2);

Ma non funziona. Ho anche impostare le autorizzazioni per il file manifesto:

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

mi manca su qualcosa? Ho cercato StackOverflow e so che questo è stato chiesto prima, ma sembrano esserci alcuna soluzione confermata su questo, qualsiasi tipo di aiuto sarebbe apprezzato.

Nota: sto usando Galaxy S sulla piattaforma 2.1

È stato utile?

Soluzione

In ogni caso, dopo un paio di prove ed errori, ho capito come si fa:

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

In alternativa, se avete bisogno di usare con 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

Se avete bisogno di avere una dimensione più piccola anteprima, è possibile impostare / scala il vostro formato SurfaceView invece.

Altri suggerimenti

Attualmente non è un'API standard per telecamere rivolti anteriore; è necessario fare affidamento su ciò che (se presente) la documentazione del produttore dell'hardware ha per utilizzare le loro estensioni per accedere alla fotocamera frontale. Ovviamente questo unico lavoro su tali dispositivi specifici.

Nota a scrivere stringhe prime come "camera-id" è spesso un buon segno che avete vagato nel bosco al di fuori del SDK ufficiale. :)

Credo che questo è un buon posto come un altro per aggiungere alcuni dettagli con cui ho lavorato fuori.

Nel caso in cui si utilizza la fotocamera frontale in modalità verticale e il file risultante viene fuori tagliata in piazze con blocchi verdi gettato provate a invertire la larghezza e l'altezza (sia anteprima e registratore) e impostando il codificatore a H263. ..

Questo ha risolto il problema sul mio Samsung Galaxy S sul 2.3.3 + ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top