音楽ファイル(MP3)を再生する - Android

Androidアプリケーションで音楽ファイル(MP3)を再生するコードを紹介します。

プロジェクトの作成

Android アプリケーションプロジェクトを作成します。
[New Android Application]ダイアログボックスが表示されますので、以下を設定します。
  • Application Name: "SimplePlayMp3"
  • Project Name: "SimplePlayMp3"
  • Package Name: "com.iPentec.simpleplaymp3"
  • Minimum Required SDK: "API 8: Android 2.2 (Froyo)"
  • Target SDK: "API 17: Android 4.2 (Jelly Bean)"
  • Compile With: "API 17: Android 4.2 (Jelly Bean)"
  • Theme: "Holo Light with Dark Action Bar"

UIの作成

MainActivityのレイアウトXMLファイルを開きます。


"Palette"からボタンをドラッグ&ドロップして配置します。2つ配置します。


"Properties"ウィンドウでOn Clickプロパティを編集します。
左側のボタンのOn Clickおプロパティには"button1_click"、右側のボタンには"button2_click"を設定しました。


ボタンのキャプションの変更

ボタンの表面の文字を変更します。
デザイナーでボタンをクリックして選択します。右側のPropertiesウィンドウの"Text"プロパティを編集します。


左側のボタンのTextプロパティを"Start"としました。ボタンの表面の文字が変更されました。


同様に右側のボタンのTextプロパティを"Stop"としました。

サウンドファイルのプロジェクトへの追加

再生するサウンドファイルをプロジェクトへ追加します。"Package Explorer"のプロジェクトのノード下の"res"ノードを選択して右クリックします。ポップアぷメニューが表示されますので[New]メニューの[Folder]サブメニューを選択します。


[New Folder]ダイアログが表示されます。"res"ノードを選択します。ダイアログ下部の[Folder name:]欄に作成するフォルダ名を入力します。フォルダ名は"raw"とします。(他の名前は不可)


フォルダが作成できると[Package Explorer]のresフォルダ内に"raw"フォルダが追加されます。


MP3ファイルを準備します。MP3ファイルを[Package Explorer]の"raw"フォルダにドラッグ&ドロップします。


ファイルをドロップすると[File Operation]ダイアログが表示されます。[Copy files]ラジオボタンにチェックをし[OK]ボタンを押します。


rawフォルダ内にサウンドファイルが追加できました。

コード

以下のコードを記述します。

MainActivity.java

package com.iPentec.simpleplaymp3;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.media.MediaPlayer;

public class MainActivity extends Activity {
  MediaPlayer mp = null;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mp = MediaPlayer.create(this, R.raw.sound01);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }

  public void button1_click(View view){
   if (mp!=null){
     mp.start();
   }
  }
  public void button2_click(View view){
    if (mp!=null){
      mp.pause();
      //mp.stop();
    }
  }
}

解説

import節
import android.view.View;
import android.media.MediaPlayer;

クラス変数
  MediaPlayer mp = null;

 
onCreateメソッド内の
   mp = MediaPlayer.create(this, R.raw.sound01);

下記の2メソッド
  public void button1_click(View view){
   if (mp!=null){
     mp.start();
   }
  }
  public void button2_click(View view){
    if (mp!=null){
      mp.pause();
      //mp.stop();
    }
  }
が追加で記述したコードです。
onCreate
アプリケーション(アクティビティ)の作成時にonCreateメソッドが呼び出されます。
mp = MediaPlayer.create(this, R.raw.sound01);
により、MediaPlayerのインスタンスを作成してサウンド再生の準備をします。createメソッドの第一引数には呼び出し元のContextを第二引数には再生するサウンドファイルを指定します。今回追加したmp3ファイルが"sound01.mp3"であったため、リソースIDは"R.raw.sound01"となります。
button1_click
button1がタップされた際に実行するコードです。onCreateメソッドで作成されたMediaPlayerのインスタンスのstart()メソッドを呼び出すことでサウンドの再生を開始します。
  public void button1_click(View view){
   if (mp!=null){
     mp.start();
   }
  }
button2_click
button2がタップされた際に実行するコードです。MediaPlayerのインスタンスのpause()メソッドを呼び出して再生を停止します。(stop()メソッドを呼び出すと再生が完全に停止してしまうため、停止後startボタンをタップしても再生は始まりません。)
  public void button2_click(View view){
    if (mp!=null){
      mp.pause();
      //mp.stop();
    }
  }

実行結果

プロジェクトを実行します。下図の画面が表示されます。[Start]ボタンをタップするとサウンドの再生が始まります。Stopボタンをタップすると再生が停止します。再度startボタンを押すと再生が再び始まります。

著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-04
作成日: 2013-03-25
iPentec all rights reserverd.