Android アプリ開発 「MATRIX」

Androidアプリの開発に役立つサンプル集



音楽を再生するアプリを作ってみよう ~ メディアプレイヤーの基本的な使い方 ~

音楽を再生するアプリの作り方

今回はメディアプレイヤーを使って音楽を再生するアプリを作ってみます。音楽を再生するアプリと聞くといろいろと難しいのでは・・・と考えてしまいがちですが、一つの曲を単純に再生するだけならとくに難しい技術は必要ありません。

下準備(プロジェクトに音楽ファイルを追加する)

プログラムを作成するまえにプロジェクトの「res」フォルダ内に「raw」フォルダを新規に追加作成して、その中に再生したい音楽ファイル(mp3,wav,mpeg4,ogg形式など)を追加します。

手順①

「res」フォルダを右クリックして「New」→「Android Resource Directory」を選択します。

f:id:vw-dsg:20181031192054p:plain

手順②

「New Resource Directory」という画面が表示されたら「Resource Type」を「raw」に変更し「OK」ボタンを押します。すると「res」フォルダの中に「raw」フォルダが作成されます。

f:id:vw-dsg:20181031192254p:plain

手順③

好きな音楽ファイル上で右クリック。表示されたメニューから「コピー」を選択しクリップボードにコピーします。

f:id:vw-dsg:20181031192608p:plain

手順④

「raw」フォルダ上で右クリックして表示されたメニューから「Paste」を選択。クリップボードにコピーしておいた音楽ファイルをペーストします。

f:id:vw-dsg:20181031191906p:plain

手順⑤

「raw」フォルダ内に音楽ファイルが追加されました。これでアプリから利用できるようになります。

f:id:vw-dsg:20181031190410p:plain

サンプルコード① MainActivity.java

プログラムは「メイン処理」「音楽を再生する処理」「音楽を停止する処理」の3つに分かれていますが、処理内容はとてもシンプルです。なお、詳しい内容についてはコード中のコメントを参照してください。 

public class MainActivity extends AppCompatActivity {

private MediaPlayer mediaPlayer1; //メディアプレイヤー用オブジェクト
private Button button_play; //プレイボタン用オブジェクト

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//レイアウトファイル(activity_main.xml)をビューにセット
setContentView(R.layout.activity_main);

//レイアウトファイル中のボタンを取得する
button_play = (Button)findViewById(R.id.play_button);

//上で取得したボタンにクリックイベントの監視を設定
button_play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

//メディアプレイヤーが未生成、または、メディアプレイヤーが未再生だったら
if(mediaPlayer1 == null || !mediaPlayer1.isPlaying()) {
//音楽を再生する処理を実行
music_start();
} else { //メディアプレイヤーが再生中だったら
//音楽を停止する処理を実行
music_stop();
}
}
});
}

//アプリがユーザーから見えなくなった時
@Override
protected void onStop() {
super.onStop();

//音楽を停止する処理を実行
music_stop();
}

//音楽の再生する処理
private void music_start() {

//メディアプレイヤーを生成
mediaPlayer1 = MediaPlayer.create(getBaseContext(), R.raw.music);
//曲の先頭から再生するように設定
mediaPlayer1.seekTo(0);
//再生開始
mediaPlayer1.start();
//ボタンの表示を「STOP」に変更
button_play.setText("STOP");
}

//音楽を停止する処理
private void music_stop() {

//メディアプレイヤーが生成されていない場合は何もせずメソッドを抜ける
if(mediaPlayer1 == null) return;
//音楽の再生をストップ
mediaPlayer1.stop();
//メディアプレイヤーを解放
mediaPlayer1.release();
//メディアプレイヤーにNULLをセット
mediaPlayer1 = null;
//ボタンの表示を「PLAY」に変更
button_play.setText("PLAY");
}
}

サンプルコード② activity_main.xml

画面に「PLAY」と「STOP」が切り替わるボタンがひとつ配置されているだけの単純な構成です。

<Button
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PLAY" />

結果画面

起動すると「PLAY」と書かれたボタンが表示されます。

f:id:vw-dsg:20181031185326j:plain

「PLAY」ボタンを押すとあらかじめセットしておいた音楽が再生され、ボタンのラベル表示が「STOP」に変わります。

f:id:vw-dsg:20181031185339j:plain

「STOP」ボタンを押すと音楽の再生が停止して、ボタンのラベル表示が再び「PLAY」に変わります。

f:id:vw-dsg:20181031185326j:plain

備考・その他

今回はひとつの音楽ファイルを再生するだけのアプリでしたが、音楽ファイルを複数読み込んで次から次へと連続で再生するようにできれば「音楽プレイヤー」のようなアプリが作れると思いますので、ぜひチャレンジしてみてください。

END