我有一个按钮,它的点击监听器上播放一个音频文件。如果在音频文件播放过程中再次点击该按钮,则该应用程序会崩溃。什么是解决方案?如何处理播放音频文件的运行时异常?
这里是参考一些代码:
private OnClickListener btnMercyListener = new OnClickListener()
{
public void onClick(View v)
{
// Toast.makeText(getBaseContext(),
// "Mercy audio file is being played",
// Toast.LENGTH_LONG).show();
if (status==true)
{
mp.stop();
mp.release();
status = false;
}
else
{
mp = MediaPlayer.create(iMEvil.this,R.raw.mercy);
//mp.start();
try{
mp.start();
status= true;
//mp.release();
}catch(NullPointerException e)
{
Log.v("MP error",e.toString());
}
}
mp.setOnCompletionListener(new OnCompletionListener(){
// @Override
public void onCompletion(MediaPlayer arg0) {
mp.release();
status = false;
}
}
);
}
};
你为什么不尝试抓住一个异常? – Kiril 2010-03-15 08:49:46
它从来没有在模拟器上显示我。我必须在设备上测试它。当连续点击8次或更多次时,应用程序崩溃。 我已经使用了一个名为status的公共布尔变量,并尝试将其值设置为仅在现有声音未播放时播放。不知道isPlaying()布尔方法能帮助我吗?我困在此刻。任何线索? – 2010-03-15 10:26:14
如果应用程序崩溃,我很确定它会抛出异常,所以尝试捕获异常将它写入日志,然后调试异常。 – Kiril 2010-03-15 16:16:45