2010-11-22 9 views
8

Ho provato diversi risposta che ho trovato sul web, come ad esempio:Come usare fotocamera frontale di fronte sul Samsung Galaxy S

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

o

mMediaRecorder.setVideoSource(2); 

Ma non è così lavoro. 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 fuori su qualcosa? Ho cercato StackOverflow e so che questo è stato chiesto prima, ma sembra non esserci alcuna soluzione confermata su questo, qualsiasi tipo di aiuto sarebbe apprezzato.

Nota: sto usando Galaxy S sulla piattaforma 2.1

risposta

12

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

Oppure, 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 è necessario avere una dimensione di anteprima più piccola, è possibile impostare/ridimensionare la dimensione di SurfaceView.

2

Attualmente non è un'API standard per le fotocamere rivolti anteriore; sarà necessario affidarsi a qualsiasi documentazione (se presente) che il produttore dell'hardware ha per utilizzare le estensioni per accedere alla fotocamera frontale. Questo ovviamente funzionerà solo su quei dispositivi specifici.

Nota scrivere stringhe come "camera-id" è spesso un buon segno che hai vagato nel bosco al di fuori dell'SDK ufficiale. :)

+4

Sì, lo so già :). Il parametro "camera-id" funzionerà ovviamente solo su Samsung Galaxy S in quanto non fa parte dell'SDK ufficiale. Ma sfortunatamente, non ho trovato ulteriore documentazione utile usando la fotocamera frontale su questo modello. –

+0

@MuhammadAbdullah quindi condividi qui ... –

0

Penso che questo sia il posto migliore per aggiungere alcuni dettagli che ho elaborato.

Se si utilizza la fotocamera frontale in modalità verticale, il file risultante viene ritagliato in riquadri con i blocchi verdi lanciati nel tentativo di invertire la larghezza e l'altezza (sia in anteprima che in registrazione) e impostare l'encoder su H263 ...

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

Problemi correlati