第一种方式: 使用create方法创建时,注意千万不要再写prepare()方法,不然会出现illeagalException。。
mp=MediaPlayer.create(getApplicationContext(), R.drawable.main_music);
mp.setLooping(true);
try {
mp.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
}
});
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
Log.d("mytest","IllegalStateException"+e);;
e.printStackTrace();
}
第二种方式:用setdatesourece()
一定要写上prepare()方法
mp.reset();
try {
mp.setDataSource(path);
mp.prepare();
mp.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
}
});
} catch (IllegalArgumentException
e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}