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