Hello, I have this error : MediaRecorder start failed: -38.
*Source code activity :* package com.example.testcamera3; import java.io.IOException; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.media.CamcorderProfile; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class VideoStackActivity extends Activity implements SurfaceHolder.Callback { private SurfaceHolder surfaceHolder; private SurfaceView surfaceView; public MediaRecorder mrec = new MediaRecorder(); private Button startRecording = null; private Camera mCamera; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video_stack); startRecording = (Button)findViewById(R.id.buttonstart); startRecording.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { startRecording(); } }); mCamera = Camera.open(); surfaceView = (SurfaceView)findViewById(R.id.surface_camera); surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "StartRecording"); menu.add(0, 1, 0, "StopRecording"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case 0: try { startRecording(); } catch (Exception e) { mrec.release(); } break; case 1: mrec.stop(); mrec.release(); mrec = null; break; default: break; } return super.onOptionsItemSelected(item); } protected void startRecording() { mrec = new MediaRecorder(); mCamera.unlock(); mrec.setCamera(mCamera); mrec.setPreviewDisplay(surfaceHolder.getSurface()); mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA); mrec.setAudioSource(MediaRecorder.AudioSource.MIC); mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW)); mrec.setVideoFrameRate(1); // A tester //mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mrec.setPreviewDisplay(surfaceHolder.getSurface()); //ok mrec.setOutputFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)+"/test.mp4"); // Ok ! try { mrec.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mrec.start(); } protected void stopRecording() { mrec.stop(); mrec.reset(); mCamera.release(); } private void releaseMediaRecorder() { if(mrec != null) { mrec.reset(); mrec.release(); mrec = null; mCamera.lock(); } } private void releaseCamera() { if(mCamera != null) { mCamera.release(); mCamera = null; } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { if(mCamera!=null) { Parameters params = mCamera.getParameters(); mCamera.setParameters(params); } } @Override public void surfaceDestroyed(SurfaceHolder holder) { if(mCamera != null) { mCamera.stopPreview(); mCamera.release(); } } } *Source code layout : *<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".VideoStackActivity" android:orientation="vertical"> <SurfaceView android:id="@+id/surface_camera" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"/> <Button android:id="@+id/buttonstart" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout>* * *Source code Manifest :* <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testcamera3" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.testcamera3.VideoStackActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.