Androidで遊ぶ機会がまたちょっとあったので、メモしておく。MP3再生なんて、個人的にはあまり用途がないが ^^;
一番簡単。なにしろロードの必要がないからね。ただし動的にロードしたり消したりは当然できない。Netbeansやらeclipseやらでリソースに組み込んだやつ(R.raw.music2)を再生する。ジングル用とかだな。
import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import java.io.IOException; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MediaPlayer _mp; _mp = MediaPlayer.create(this, R.raw.music2); try { _mp.start(); } catch (IllegalStateException e) { e.printStackTrace(); } } }
/sdcard/Music/music2.mp3 を再生してみよう。
import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.widget.TextView; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; /* * * ローカルにあるサウンドを演奏する(/sdcard/Music/music2.mp3) * */ public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); localsoundplay("/sdcard/Music/music2.mp3"); } private void localsoundplay(String fn){ try { //ローカルファイルを再生 MediaPlayer mp = new MediaPlayer(); mp.setDataSource(fn); mp.prepare(); mp.start(); dispMes("終わったぜ"); } catch (IOException ex) { Logger.getLogger(MainActivity.class.getName()).log(Level.SEVERE, null, ex); dispMes("IOエラー"); } catch (IllegalArgumentException ex) { Logger.getLogger(MainActivity.class.getName()).log(Level.SEVERE, null, ex); dispMes("Argumentエラー"); } catch (IllegalStateException ex) { Logger.getLogger(MainActivity.class.getName()).log(Level.SEVERE, null, ex); dispMes("Srateエラー"); } } private void dispMes(String x){ TextView display = new TextView(this); //追加 display.setText(x); //追加 setContentView(display); //追加 } }
これは調査中。まぁ、そこいらのサイトにあるだろうから見てくれ。