title: How to play 3gp audio file in Android using default player in the device?
body: <p>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.</p>
  
  <p>Code : </p>
  
  <pre><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 &gt;  " + directory);
          if (!directory.exists() &amp;&amp; !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
  
          }
  
  
      }
  </code></pre>