mohan
mohan

Reputation: 13165

How to open the front facing camera and record video in android

How do I open the front camera using surface view, and record video in android 3.1? Can anybody provide sample code?

Upvotes: 1

Views: 9512

Answers (2)

Faisal Khan
Faisal Khan

Reputation: 2614

try this

camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT);
camera.setDisplayOrientation(90);
camera.unlock();
mediaRecorder = new MediaRecorder();
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CamcorderProfile camcorderProfile_HQ = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
mediaRecorder.setProfile(camcorderProfile_HQ);
mediaRecorder.setOutputFile(getOutputMediaFile(2).toString());
mediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.
mediaRecorder.setMaxFileSize(5000000); // Set max file size 5M

Upvotes: 2

Reno
Reno

Reputation: 33792

This should works, assuming you have created the surface:

int cameraType = 1; // front
camera = Camera.open(cameraType);

m_recorder = new MediaRecorder();
m_recorder.setPreviewDisplay(m_BeMeSurface);    
m_recorder.setCamera(camera);
m_recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
m_recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
m_recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
m_recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
m_recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
m_recorder.setMaxDuration((int) MAX_TIME); 
m_recorder.setOnInfoListener(m_BeMeSelf);
m_recorder.setVideoSize(320, 240); 
m_recorder.setVideoFrameRate(15); 
m_recorder.setOutputFile(m_path);

m_recorder.prepare();
m_recorder.start();

Note that not all camera hardware support front camera video recording. In such a case, the back camera is used. Call this api to find out which video recording sizes are avaliable

Upvotes: 5

Related Questions