//根据被传递的歌曲名称,选择播放的歌曲
public void playByName(String name){
mp = new MediaPlayer();
try{
mp.setDataSource("sdcard/音乐"+name);
mp.prepare();
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();
}
}
执行这段代码的时候总是报Media Player called in state 0,后来查了半天错发现是mp.setDataSource("sdcard/音乐"+name);这句出错了,但是解决的办法竟然就是加一个“/”,修改后是这个样子:mp.setDataSource("sdcard/音乐/"+name);虽然这么简单,但是真的解决了。