I met the similar problem, the exact problem point is at start(),
when called prepare(), I can see the preview at screen,
when call start(), the android will crash at about 7 seconds, the
logcat is as following:
===============================
08-04 16:53:45.368: ERROR/audio_input(99): unsupported parameter: x-
pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
08-04 16:53:45.368: ERROR/audio_input(99): VerifyAndSetParameter
failed
08-04 16:53:45.427: WARN/AuthorDriver(99): Video encoding bit rate is
set to 320000 bps
08-04 16:53:45.427: INFO/MediaRecorderJNI(513): prepare:
surface=0x11c530 (id=1)
08-04 16:53:45.457: ERROR/PVOMXEncNode(99): PVMFOMXEncNode-
Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle
08-04 16:53:45.487: ERROR/VideoencOMX(99): component_init::334
Initializing component OMX.qcom.video.encoder.h263
08-04 16:53:45.497: ERROR/VideoencOMX(99): component_init::626 we are
now in the OMX_StateLoaded state
08-04 16:53:45.497: ERROR/PVOMXEncNode(99): PVMFOMXEncNode-
Video_H263::DoPrepare(): Got Component OMX.qcom.video.encoder.h263
handle
08-04 16:53:45.497: WARN/CameraInput(99): refCount 0
08-04 16:53:45.497: ERROR/VideoencOMX(99): set_parameter::1090
set_parameter : output buffer size = 76800
08-04 16:53:45.497: ERROR/VideoencOMX(99): set_parameter::1090
set_parameter : output buffer size = 76800
08-04 16:53:45.497: ERROR/VideoencOMX(99): get_parameter::997
Unsupported index 117440523
08-04 16:53:45.497: ERROR/VideoencOMX(99): set_parameter::1182
Unsupported index IndexConfigCommonRate
08-04 16:53:45.497: ERROR/VideoencOMX(99): get_parameter::997
Unsupported index 100663301
08-04 16:53:45.497: ERROR/VideoencOMX(99): set_parameter::1224
Unsupported index 100663301
08-04 16:53:45.497: ERROR/VideoencOMX(99): get_parameter::997
Unsupported index 100663302
08-04 16:53:45.497: ERROR/VideoencOMX(99): set_parameter::1224
Unsupported index 100663302
08-04 16:53:45.497: ERROR/VideoencOMX(99): send_command::728 sending
command MSG_ID_STATE_CHANGE: 1 state => 2 state
08-04 16:53:45.507: ERROR/VideoencOMX(99): process_state_change::2327
go to OMX_StateIdle
08-04 16:53:45.507: ERROR/VideoencOMX(99): use_buffer::1432 client
allocated input buffer for component 115200
08-04 16:53:45.507: ERROR/VideoencOMX(99): use_buffer::1432 client
allocated input buffer for component 115200
08-04 16:53:45.507: ERROR/VideoencOMX(99): use_buffer::1432 client
allocated input buffer for component 115200
08-04 16:53:45.507: ERROR/VideoencOMX(99): use_buffer::1432 client
allocated input buffer for component 115200
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2477
coding_type=1 profile=0 level=0
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2481
frame_width=320 frame_height=240 rotation=0
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2485
max_frame_rate=20 target_bitrate=320000 min_qp=2
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2489
max_qp=31 intra_period=20 time_resolution=40
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2493
ac_pred_on=0 iframe_vol_inject=0 intra_refresh=0
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2497
packetization=0 resync_enable=0 hec_enable=0
08-04 16:53:45.517: ERROR/VideoencDEV(99): venci_show_config::2501
rc=3 qp_iframe=10 qp_pframe=10
08-04 16:53:45.528: DEBUG/CameraService(99): CameraService::connect E
(pid 99, client 0xa4eac)
08-04 16:53:45.528: DEBUG/CameraService(99): Client::Client E (pid 99)
08-04 16:53:45.537: DEBUG/QualcommCameraHardware(99): createInstance:
E
08-04 16:53:45.728: DEBUG/mm-camera(99): vfe_init, s-
>sensor.b_gain_init_bias = -0.250000
08-04 16:53:45.747: INFO/QualcommCameraHardware(99): startCamera:
camsensor name s5k3e2fx, flash 1
08-04 16:53:45.747: INFO/QualcommCameraHardware(99): Set zoom=0
08-04 16:53:45.747: DEBUG/QualcommCameraHardware(99): createInstance:
X created hardware=0xa5248
08-04 16:53:45.777: DEBUG/CameraService(99): Client::Client X (pid 99)
08-04 16:53:45.777: DEBUG/CameraService(99): CameraService::connect X
08-04 16:53:45.777: DEBUG/CameraService(99):
setPreviewDisplay(0x513e0) (pid 99)
08-04 16:53:45.777: DEBUG/CameraInput(99): Intended mFrameWidth=320,
mFrameHeight=240
08-04 16:53:45.777: DEBUG/CameraService(99):
getParameters(antibanding=auto;antibanding-values=off,50hz,
60hz,auto;effect=none;effect-
values=none,mono,negative,solarize,sepia,posterize,whiteboard,blackboard,aqua;flash-
mode=off;flash-mode-values=off,auto,on;focus-mode=auto;focus-mode-
values=auto,infinity;jpeg-quality=100;jpeg-thumbnail-height=384;jpeg-
thumbnail-quality=90;jpeg-thumbnail-width=512;max-zoom=5;picture-
format=jpeg;picture-format-values=jpeg;picture-size=2048x1536;picture-
size-values=2592x1944,2048x1536,1600x1200,1024x768,512x384;preview-
format=yuv420sp;preview-format-values=yuv420sp;preview-frame-
rate=15;preview-size=720x480;preview-size-
values=1280x720,800x480,720x480,640x480,576x432,480x320,384x288,352x288,320x240,240x160,176x144;whitebalance=auto;whitebalance-
values=auto,incandescent,fluorescent,daylight,cloudy-
daylight;zoom=0;zoom-supported=true)
08-04 16:53:45.777: DEBUG/CameraService(99):
setParameters(antibanding=auto;antibanding-values=off,50hz,
60hz,auto;effect=none;effect-
values=none,mono,negative,solarize,sepia,posterize,whiteboard,blackboard,aqua;flash-
mode=off;flash-mode-values=off,auto,on;focus-mode=auto;focus-mode-
values=auto,infinity;jpeg-quality=100;jpeg-thumbnail-height=384;jpeg-
thumbnail-quality=90;jpeg-thumbnail-width=512;max-zoom=5;picture-
format=jpeg;picture-format-values=jpeg;picture-size=2048x1536;picture-
size-values=2592x1944,2048x1536,1600x1200,1024x768,512x384;preview-
format=yuv420sp;preview-format-values=yuv420sp;preview-frame-
rate=20;preview-size=320x240;preview-size-
values=1280x720,800x480,720x480,640x480,576x432,480x320,384x288,352x288,320x240,240x160,176x144;whitebalance=auto;whitebalance-
values=auto,incandescent,fluorescent,daylight,cloudy-
daylight;zoom=0;zoom-supported=true)
08-04 16:53:45.777: INFO/QualcommCameraHardware(99): Set zoom=0
08-04 16:53:45.777: DEBUG/CameraService(99):
getParameters(antibanding=auto;antibanding-values=off,50hz,
60hz,auto;effect=none;effect-
values=none,mono,negative,solarize,sepia,posterize,whiteboard,blackboard,aqua;flash-
mode=off;flash-mode-values=off,auto,on;focus-mode=auto;focus-mode-
values=auto,infinity;jpeg-quality=100;jpeg-thumbnail-height=384;jpeg-
thumbnail-quality=90;jpeg-thumbnail-width=512;max-zoom=5;picture-
format=jpeg;picture-format-values=jpeg;picture-size=2048x1536;picture-
size-values=2592x1944,2048x1536,1600x1200,1024x768,512x384;preview-
format=yuv420sp;preview-format-values=yuv420sp;preview-frame-
rate=15;preview-size=320x240;preview-size-
values=1280x720,800x480,720x480,640x480,576x432,480x320,384x288,352x288,320x240,240x160,176x144;whitebalance=auto;whitebalance-
values=auto,incandescent,fluorescent,daylight,cloudy-
daylight;zoom=0;zoom-supported=true)
08-04 16:53:45.777: DEBUG/CameraInput(99): Actual mFrameWidth=320,
mFrameHeight=240
08-04 16:53:45.777: DEBUG/CameraService(99): startPreview (pid 99)
08-04 16:53:45.777: DEBUG/CameraService(99): startCameraMode(0) (pid
99)
08-04 16:53:45.777: DEBUG/CameraService(99): startPreviewMode (pid 99)
08-04 16:53:45.777: INFO/QualcommCameraHardware(99): initPreview E:
preview size=320x240
08-04 16:53:45.777: DEBUG/QualcommCameraHardware(99):
mBufferSize=115200, mAlignedBufferSize=118784
08-04 16:53:45.807: DEBUG/QualcommCameraHardware(99): frame_thread E
08-04 16:53:55.711: INFO/wpa_supplicant(171): CTRL-EVENT-SCAN-RESULTS
Ready
08-04 16:54:05.097: DEBUG/dalvikvm(224): GC freed 2362 objects /
142664 bytes in 68ms
08-04 16:54:11.647: INFO/wpa_supplicant(171): CTRL-EVENT-SCAN-RESULTS
Ready
08-04 16:54:15.867: ERROR/VideoencOMX(99): send_command::728 sending
command MSG_ID_STATE_CHANGE: 2 state => 3 state
08-04 16:54:15.867: ERROR/VideoencOMX(99): process_state_change::2633
go to OMX_StateExecuting
=================================================
My source code is as following:

                try {
                    mRecorder = new MediaRecorder();
                    //
mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
 
mRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
 
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

                    //
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
 
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
                    mRecorder.setOutputFile("/sdcard/video2.3gp");
                    //mRecorder.setVideoSize(220, 176);
                    //mRecorder.setVideoFrameRate(10);
                    mRecorder.setPreviewDisplay(mSurface);
                    mRecorder.prepare();
                    long size = 20000;
                    //mRecorder.setMaxFileSize(size<<10);
                    //mRecorder.start();
                    //mCamera.startPreview();
                    mPreviewButton.setEnabled(false);
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

,,,,,, mSurface is initilized in the
        public void surfaceCreated(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            mSurfaceExsit = true;
            mSurface = holder.getSurface();
//            mCamera = Camera.open();
//            try {
//                mCamera.setPreviewDisplay(holder);
//            } catch (IOException e) {
//                mCamera.release();
//                mCamera = null;
//                e.printStackTrace();
//            }
            Toast.makeText(mContext, "Surface Created!",
Toast.LENGTH_SHORT).show();
        }





On Jul 7, 3:53 pm, Byeong Jo Lee <[email protected]> wrote:
> hi.
> i have been trying to record camera usingMediaRecorder.
> i searched some sample source code.
> but they dose not work...
>
> actually i succeeded recording audio, but i can't recordvideo.
> is there someone who advice me?
>
> ---------------- source code -----------------------
> package lbj.camera.test;
>
> import java.io.File;
> import java.io.IOException;
>
> import android.app.Activity;
> import android.content.Context;
> import android.hardware.Camera;
> import android.media.MediaRecorder;
> import android.os.Bundle;
> import android.os.Environment;
> import android.util.Log;
> import android.view.Menu;
> import android.view.MenuItem;
> import android.view.SurfaceHolder;
> import android.view.SurfaceView;
>
> public class CameraTest2 extends Activity {
>         publicMediaRecordermrec = null;
>         File videofile;
>
>         /** Called when the activity is first created. */
>         @Override
>         public void onCreate(Bundle savedInstanceState) {
>                 super.onCreate(savedInstanceState);
>                 mPreview = new Preview(this);
>                 setContentView(mPreview);
>         }
>
>         private Preview mPreview;
>         SurfaceView sv;
>         SurfaceHolder holder;
>
>         @Override
>         public boolean onCreateOptionsMenu(Menu menu) {
>                 menu.add("Capture");
>                 menu.add("Save");
>                 return super.onCreateOptionsMenu(menu);
>         }
>
>         public boolean onOptionsItemSelected(MenuItem item) {
>                 if (item.getTitle().equals("Capture")) {
>                         try {
>                                 mPreview.record();
>                         } catch (Exception e) {
>                                 e.printStackTrace();
>                                 Log.d("Has not finished here:", 
> "Startingvideo");
>                         }
>                 } else if (item.getTitle().equals("Save")) {
>                         mPreview.saveAndStop();
>                 }
>                 return true;
>         }
>
> }
>
> class Preview extends SurfaceView implements SurfaceHolder.Callback {
>
>         SurfaceHolder mHolder;
>         Camera mCamera;
>         Context context;
>        MediaRecorderrecorder = null;
>
>         public void record() throws Exception{
>                 File audiofile = null;
>                 try {
>                         String mSdCardPath =
> Environment.getExternalStorageDirectory().getAbsolutePath();
>                         audiofile = new File(mSdCardPath + File.separator + 
> "test.3gp");
>                         audiofile.createNewFile();
>                 } catch (Exception e) {
>                         throw e;
>                 }
>
>                 recorder = newMediaRecorder();
>
>                 recorder.setCamera(mCamera);
>                 recorder.setPreviewDisplay(mHolder.getSurface());
>
>                 recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
>                 recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
>                 
> recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
>
>                 recorder.setOutputFile(audiofile.getAbsolutePath());
>                 recorder.setVideoSize(176, 144);
>                 recorder.setVideoFrameRate(15);
>
>                 recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
>                 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
>
>                 Log.d("Has Entered here:", "Startingvideo");
>
>                 if (recorder != null) {
>                         try {
>                                 recorder.prepare();
>                                 recorder.start();
>                         } catch (Exception ex) {
>                                 ex.printStackTrace();
>                         }
>                 }
>         }
>
>         Preview(Context context) {
>                 super(context);
>
>                 mHolder = getHolder();
>                 mHolder.addCallback(this);
>                 mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
>         }
>
>         public void surfaceCreated(SurfaceHolder holder) {
>                 try {
>                         mCamera = Camera.open();
>                         mCamera.setPreviewDisplay(holder);
>                 } catch (IOException e) {
>                         e.printStackTrace();
>                 }
>         }
>
>         public void surfaceDestroyed(SurfaceHolder holder) {
>                 Log.d("Stopping preview", "in preview class");
>                 mCamera.stopPreview();
>                 mCamera = null;
>         }
>
>         public void surfaceChanged(SurfaceHolder holder, int format, int w,
> int h) {
>                 Camera.Parameters parameters = mCamera.getParameters();
>                 parameters.setPreviewSize(w, h);
>                 mCamera.setParameters(parameters);
>                 mCamera.startPreview();
>         }
>
>         public void saveAndStop() {
>                 if (recorder != null) {
>                         try {
>                                 recorder.stop();
>                                 recorder.reset();
>                                 recorder.release();
>                         } catch (IllegalStateException e) {
>                                 e.printStackTrace();
>                         }
>                 }
>         }
>
>
>
> }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to