Media Android

import android.content.Context;
import android.media.MediaPlayer;
public class AudioClip {
  private MediaPlayer mPlayer;
  private String name;
  
  private boolean mPlaying   = false;
  private boolean mLoop    = false;
  public AudioClip(Context ctx, int resID) {
    name = ctx.getResources().getResourceName(resID);
    mPlayer = MediaPlayer.create(ctx, resID);
    mPlayer.setVolume(1000, 1000);
    mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
      public void onCompletion(MediaPlayer mp) {
        mPlaying = false;
        if(mLoop)
          mp.start();
        
      }
    });
  }
  public synchronized void play(){
    if(mPlaying)
      return;
    
    if(mPlayer != null){
      mPlaying = true;
      mPlayer.start();
    }
  }
  
  public synchronized void stop(){
    try{
      mLoop = false;
      if(mPlaying){
        mPlaying = false;
        mPlayer.pause();
      }
    }catch(Exception e){
      System.err.println("AudioClip::stop "+name + " " + e.toString());
    }
  }
  
  public synchronized void loop () {
    mLoop = true;
    mPlaying = true;
    mPlayer.start();    
    
  }
  
  public void release () {
    if(mPlayer != null){
      mPlayer.release();
      mPlayer = null;
    }
  }
}