Hi Jason, perhaps you could help me with my code. I was trying to
capture video for two weeks now without success :(

This is my complete code
========================

public class VideoCapture extends Activity
        implements SurfaceHolder.Callback {

        private static final String TAG = "JTrek Video Capture";
        private SurfaceView surfaceView;
    private SurfaceHolder surfaceHolder;
    private MediaRecorder recorder;
    private String videoFile = "videotest.3gp";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        surfaceView = (SurfaceView)findViewById(R.id.surface);

        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
        surfaceHolder.setType
(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        setRequestedOrientation
(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        prepareVideoCapture();
    }

    public void prepareVideoCapture() {
        /* Create a MediaRecorder */
        recorder = new MediaRecorder();
        Log.i(TAG, "Media recorder created");

        try {
                OutputStream stream = openFileOutput(videoFile,
MODE_WORLD_WRITEABLE);
                stream.write(0xA);
                stream.close();
        } catch(IOException ioException) {
                Log.e(TAG, "VIDEO: An error creating the output file.");
                }

        File file = getFileStreamPath(videoFile);
        Log.i(TAG, "File exists? : " + file.exists());

        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);

        recorder.setOutputFile(this.videoFile);
        Log.i(TAG, "Media recorder parameters set");

        recorder.setPreviewDisplay(surfaceHolder.getSurface());
        Log.i(TAG, "Preview Display set to surface holder!");
    }

  //
============================================================================
    //                                      SURFACE CALLBACK IMPLEMENTATION
    //
============================================================================
    public void surfaceCreated(SurfaceHolder holder) {
        Log.e(TAG, "surfaceCreated");

        try {
            recorder.prepare();
        } catch (IllegalStateException e) {
            Log.e(TAG, e.toString());
        } catch (IOException e) {
            Log.e(TAG, "THE ERROR IS HERE!: " + e.toString());
        }

        Log.i(TAG, "Media recorder prepared for video capture!");

        try {
                recorder.start();
        } catch (IllegalStateException e) {
                Log.e(TAG, e.toString());
        }
        Log.i(TAG, "Video capture started!!");
    }

    public void surfaceChanged(SurfaceHolder holder, int format, int
w, int h) {
        Log.e(TAG, "surfaceChanged");
    }

    public void surfaceDestroyed(SurfaceHolder holder) {
        Log.e(TAG, "surfaceDestroyed");
    }
    //
============================================================================

    protected void onStop() {
        // Stops the media recorder object
        recorder.stop();
        recorder.release();

        Log.e(TAG, "onStop");
        super.onStop();
    }
}

And this is the LogCat I received when debugging:
=================================================

08-17 10:51:22.400: INFO/Video Capture(709): Media recorder created
08-17 10:51:22.450: INFO/Video Capture(709): File exists? : true
08-17 10:51:22.571: INFO/Video Capture(709): Media recorder parameters
set
08-17 10:51:22.581: INFO/Video Capture(709): Preview Display set to
surface holder!
08-17 10:51:23.132: ERROR/Video Capture(709): surfaceCreated
08-17 10:51:23.181: ERROR/Video Capture(709): THE ERROR IS HERE!:
java.io.FileNotFoundException: /videotest.3gp
08-17 10:51:23.191: INFO/Video Capture(709): Media recorder prepared
for video capture!
08-17 10:51:23.191: ERROR/MediaRecorder(709): start called in an
invalid state: 4
08-17 10:51:23.200: ERROR/Video Capture(709):
java.lang.IllegalStateException
08-17 10:51:23.210: INFO/Video Capture(709): Video capture started!!
08-17 10:51:23.210: ERROR/Video Capture(709): surfaceChanged

I am also wondering if it is mandatory to capture video in external
memory instead of internal memory?
Thanks in advance. I appreciate any help you can give me!..
--~--~---------~--~----~------------~-------~--~----~
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