我用的是5.0系统的nexus5真机。《第一行代码》中的播放音频章节,代码和书中是一样的,程序也安装好了,可是为什么不能播放音乐呢?小白求助,谢谢.....
错误提示:
下面是源代码
请问是哪里错了呢?谢谢大神解答...感激不尽....
错误提示:
E/MediaPlayer: Error (-38,0)
E/MediaPlayer: start called in state 0
下面是源代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button play;
private Button pause;
private Button stop;
private MediaPlayer mediaPlayer=new MediaPlayer();
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
play=(Button)findViewById(R.id.play);
pause=(Button)findViewById(R.id.pause);
stop=(Button)findViewById(R.id.stop);
initMediaPlayer();
play.setOnClickListener(this);
pause.setOnClickListener(this);
stop.setOnClickListener(this);
}
private void initMediaPlayer(){
try{
File file = new File(Environment.getExternalStorageDirectory(),"music.mp3");
mediaPlayer.setDataSource(file.getPath());
mediaPlayer.prepare();
mediaPlayer.start();
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.play:
if (!mediaPlayer.isPlaying()){
mediaPlayer.start();
}
break;
case R.id.pause:
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
}
break;
case R.id.stop:
if (mediaPlayer.isPlaying()){
mediaPlayer.reset();
initMediaPlayer();
}
break;
default:
break;
}
}
@Override
protected void onDestroy(){
super.onDestroy();
if (mediaPlayer!=null){
mediaPlayer.stop();
mediaPlayer.release();
}
}
}
请问是哪里错了呢?谢谢大神解答...感激不尽....