Tạo Media Player (chơi mp3) trên Android

Ở bài này bạn sẽ học cách tạo 1 Media Player để chơi mp3 rất đơn giản trên Android. File mp3 sẽ được lấy từ raw resources. Qua bài này các bạn cũng có thể có 1 giải pháp tạo âm thanh cho các ứng dụng Android hoặc game.

Yêu cầu của Media Player đơn giản này gồm 1 button Play để khi click sẽ bắt đầu chơi file mp3 và 1 button Sound để tắt và bật tiếng. Trước hết bạn hãy tạo 1 thư mục raw trong thư mục res. Chép file mp3 của bạn vào raw. Ở layout main.xml tạo 2 button Play và Sound có id lần lượt là PlaySound.

Java:

public class Main extends Activity {

   public boolean sound_var = true;
   public MediaPlayer mp;

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

      mp = MediaPlayer.create(Main.this, R.raw.mySong);
      Button play_btn = (Button) this.findViewById(R.id.Play);
      final Button sound_btn = (Button) findViewById(R.id.Sound);
      play_btn.setText("Play");
      sound_btn.setText("Sound Off");

      play_btn.setOnClickListener(new OnClickListener() {
         @Override
         public void onClick(View arg0) {
            mp.start();
            // phản ứng khi kết thúc file:
            mp.setOnCompletionListener(new OnCompletionListener() {
               // @Override
               public void onCompletion(MediaPlayer arg0) {
                  // File kết thúc!!!
                  Log.d("MyTrace", "File has ended!");
                  mp.start();// chơi lại lần nữa.
               }
            });
         }
      });
      // Bật và tắt âm thanh.
      sound_btn.setOnClickListener(new OnClickListener() {
         @Override
         public void onClick(View arg0) {
            if (sound_var == false) {
               sound_btn.setText("Sound Off");
               mp.setVolume(100, 100);
               sound_var = true;
            } else {
               sound_btn.setText("Sound On");
               mp.setVolume(0, 0);
               sound_var = false;
            }
         }
      });
   }
}

Đến đây bạn đã có 1 player đơn giản để chạy mp3. Tuy nhiên có 1 vấn đề là khi thoát ra Home, âm thanh vẫn tiếp tục chạy. Để giải quyết vấn đề này bạn thêm đoạn code sau vào tiếp đoạn code bên trên (đặt ngoài onCreate). Khi đó nếu thoát ra Home thì âm thanh sẽ dừng không chơi tiếp.

// Dừng sound khi thoát ra Home.
   @Override
   protected void onPause() {
      super.onPause();
      mp.pause();
}

Cuối cùng, để test trên emulator bạn cần vào Run ConfigurationsTarget và thêm vào -useaudio hoặc -audio winaudio vào Command line. Chúc bạn thành công.