i sorry for the cross post but i am stuck ... :(

in error logs i am seeing this .... please help me to resolve
this ...!

09-08 12:30:26.174: ERROR/MediaPlayer(554): Unable to to create media
player
09-08 12:30:26.183: ERROR/CameraService(554): Failed to load
CameraService sounds.
09-08 12:30:26.203: ERROR/MediaPlayer(554): Unable to to create media
player
09-08 12:30:26.203: ERROR/CameraService(554): Failed to load
CameraService sounds.

thanks
~pp



On Sep 8, 12:51 pm, preetam_pict <[email protected]> wrote:
> Hi all
>
> I am trying to write a sample program to record the video (say
> camcorder application).
> When i run my program using the emulator (I have android-sdk-
> windows-1.5_r3) I see java.io.IOException: prepare failed. error in
> logcat output.
>
> Further I can see that I have came across this error when i call
> MediaRecorder.prepare()
> from CamcorderActivity.surfaceCreated()
> But I am surprised to see that activity got launched and I am seeing
> the camera preview!  Again the preview is seen only in half of the
> screen! Its weird!!!
>
> Further when i do recorder.start() to record the video I get
> java.lang.IllegalStateException. Yes this is obvious since the prepare
> () has failed.
> But the question is why prepare() has failed ?
>
> Can someone please help me to understand whats happening here!
> Am i missing something ???
>
> thanks in advance
> ~pp
>
> Here is my code ...
> package com.example;
>
> import java.io.IOException;
>
> import android.app.Activity;
> import android.graphics.PixelFormat;
> import android.media.MediaRecorder;
> import android.os.Bundle;
> import android.util.Log;
> import android.view.KeyEvent;
> import android.view.SurfaceHolder;
> import android.view.SurfaceView;
>
> public class CamcorderActivity extends Activity implements
>         SurfaceHolder.Callback
> {
>     private MediaRecorder recorder;
>     private SurfaceView   surfaceView;
>     private SurfaceHolder surfaceHolder;
>
>     private boolean       recording = false;
>
>     /** Called when the activity is first created. */
>     @Override
>     public void onCreate(Bundle savedInstanceState)
>     {
>         super.onCreate(savedInstanceState);
>
>         // configure the surface
>         getWindow().setFormat(PixelFormat.TRANSLUCENT);
>         setContentView(R.layout.main);
>         surfaceView = (SurfaceView) findViewById(R.id.camcordersurface);
>         surfaceHolder = surfaceView.getHolder();
>         surfaceHolder.addCallback(this);
>         surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
>         configureRecorder();
>     }
>
>     private void configureRecorder()
>     {
>         // configure media recorder
>         recorder = new MediaRecorder();
>         recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
>         recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
>         recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
>         recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
>         recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
>     }
>
>     private void stopRecorder()
>     {
>         try
>         {
>             if (recorder == null)
>             {
>                 return;
>             }
>             recorder.stop();
>             recorder.reset();
>             recorder.release();
>             recording = false;
>             recorder = null;
>         }
>         finally
>         {
>             if (recorder != null)
>             {
>                 recorder.release();
>             }
>         }
>     }
>
>     private void startRecorder()
>     {
>         recorder.start();
>         recording = true;
>     }
>
>     @Override
>     public boolean onKeyDown(int keyCode, KeyEvent event)
>     {
>         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
>         {
>             // if not recording then start
>             if (!recording)
>             {
>                 startRecorder();
>             }
>             else
>             {
>                 // if already recording then stop
>                 stopRecorder();
>                 finish();
>             }
>             return true;
>         }
>         return super.onKeyDown(keyCode, event);
>     }
>
>     @Override
>     public void surfaceChanged(SurfaceHolder holder, int format, int
> width,
>             int height)
>     {
>         // do nothing
>     }
>
>     @Override
>     public void surfaceCreated(SurfaceHolder holder)
>     {
>         recorder.setOutputFile("/sdcard/test" + System.currentTimeMillis()
>                 + ".mp4");
>         recorder.setPreviewDisplay(holder.getSurface());
>         try
>         {
>             recorder.prepare();
>         }
>         catch (IOException e)
>         {
>             Log.e("error -- ", e.toString(), e);
>             // TODO:
>             // show error message
>         }
>     }
>
>     @Override
>     public void surfaceDestroyed(SurfaceHolder holder)
>     {
>         stopRecorder();
>     }
>
> }
>
> And the layout ...
>
> <?xml version="1.0" encoding="utf-8"?>
> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> android"
>         android:orientation="vertical" android:layout_width="fill_parent"
>         android:layout_height="fill_parent">
>         <SurfaceView android:id="@+id/camcordersurface"
>                 android:layout_width="fill_parent" 
> android:layout_height="10dip"
>                 android:layout_weight="1">
>         </SurfaceView>
> </LinearLayout>
--~--~---------~--~----~------------~-------~--~----~
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