以下をインポートする必要がある
import android.media.MediaPlayer;
プロジェクトフォルダ内の\res\rawに再生したいファイルを用意しておく。以下はtest.mp3を再生したい場合
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);
mp.start();
が、どうもSDカード内のファイルなど、外部ファイルを再生したい場合はMediaPlayer.createが使えないっぽいのでsetDataSourceを使う必要がある。
importがひとつ増える
import java.io.IOException;
MediaPlayer.createよりも工程が増える。setDataSource()→prepare()→start()の順番。
MediaPlayer mp = new MediaPlayer(); try { mp.setDataSource("/sdcard/test.mp3"); mp.prepare(); mp.start(); }catch(IllegalArgumentException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (SecurityException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IllegalStateException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); }
無駄にTryCatchしているように見えるが実際無駄である。だがこうやらないとエラー吐いてビルドできないからこういうものだという精神でやってる。
ちなみに以下でループ再生が有効になる
mp.setLooping(true);