I need to play an 3gp audio file stored in my sd card location, to play it with my default media player in my HTC device.
Code :
 public class AudioRecorder extends Activity {
     private static final String CAMERA_STATUS = "camera_upload";
        private static final String GALLERY_STATUS = "gallery_upload";
        MediaRecorder recorder = new MediaRecorder();
        static String path = "audio-android.3gp";
        Button startRecording;
        Button stopRecording;
        Button save;
        Button palyAudio;
        private Context context;
     private String sanitizePath(String path) {
        if (!path.startsWith("/")) {
            path = "/" + path;
        }
        if (!path.contains(".")) {
            path += ".3gp";
        }
        return Environment.getExternalStorageDirectory().getAbsolutePath()
            + path;
        }
     @Override
        protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.audio_recording);
        context = this;
        /**
         * Creates a new audio recording at the given path (relative to root of
         * SD card).
         */
        this.path = sanitizePath(path);
        startRecording = (Button) findViewById(R.id.startRecording);
        stopRecording = (Button) findViewById(R.id.stopRecording);
        save = (Button) findViewById(R.id.resetRecording);
        palyAudio = (Button) findViewById(R.id.playRecorded);
startRecording.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
            try {
                stopRecording.setVisibility(View.VISIBLE);
                startRecording.setVisibility(View.GONE);
                start();
            } catch (IOException e) {
                e.printStackTrace();
            }
            }
        });
        stopRecording.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
            stopRecording.setVisibility(View.GONE);
            startRecording.setVisibility(View.VISIBLE);
            try {
                            stop();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            }
        });
        palyAudio.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
             playAudio();
             //startMediaPlayer();
            }
        });
        }
        /**
         * 
         * play the recorded audio
         * 
         */
        public void playAudio() {
        try {
            Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
            Uri data = Uri.parse(path);
           // Intent intent = new Intent(Intent.ACTION_VIEW, data);  
            intent.setDataAndType(data, "audio/mp3");
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            // TODO: handle exception
        }
        }
      /**
         * Starts a new recording.
         */
        public void start() throws IOException {
        recorder = new MediaRecorder();
        String state = android.os.Environment.getExternalStorageState();
        if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
            throw new IOException("SD Card is not mounted.  It is " + state
                + ".");
        }
        // make sure the directory we plan to store the recording in exists
        File directory = new File(path).getParentFile();
        System.out.println("start() directory >  " + directory);
        if (!directory.exists() && !directory.mkdirs()) {
            throw new IOException("Path to file could not be created.");
        }
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);                 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);    recorder.setOutputFile(path); 
        recorder.prepare();               
        recorder.start(); 
        }
        /**
         * Stops a recording that has been previously started.
         */
        public void stop() throws IOException {
        recorder.stop(); // Stops recording.
        recorder.release(); // Now the object cannot be reused
        }
    }
 
     
     
     
     
    