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