我正在尝试构建一个读取音乐文件的应用程序,然后使用按钮播放/暂停音乐,因此我使用了下面的代码,而我遇到的问题是,一旦单击按钮,音乐就会播放,然后我单击它已停止,因此当我第三次单击时音乐不播放(仅播放一次)
btn1=(Button)findViewById(R.id.btn) ;
try {
mp.setDataSource(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) +String.valueOf("/myfile.3gp"));
} catch (IOException e) {
e.printStackTrace();
}
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
if(!mp.isPlaying()){
mp.prepare();
mp.start();
btn1.setText("pause");
}else{
mp.pause();
btn1.setText("play");
}
}catch(Exception e){e.printStackTrace();}
}
});
最佳答案
我认为您只需要调用mp.prepare();一次,因为它应该在您第一次按“播放”后就已经创建。您可以使用onPrepared方法。
也许此链接可能会有所帮助:this