我写了这段代码,但有些人可以帮忙解决一些问题吗?
我的问题是:
当我发布我的应用按钮(“发送”)显示错误并且我的应用关闭时。我认为问题是这个代码
Rec.StopRecord();
但我不知道如何解决它!
这些是我的代码
send.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Itemclick();
}
});
send.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
{
Rec=new Recorder();
Rec.startRecord();
break;
}
case MotionEvent.ACTION_UP:
{ Rec.StopRecord();
db.open();
db.insert_offline(Rec.getName(), true, false);
listItems.add(Rec.getName());
adapter.notifyDataSetChanged();
db.close();
Rec=null;
break;
}
}
return false;
}
});
这是StopRecord
public void StopRecord()
{
mr.stop();
mr.release();
mr = null;
}
答案 0 :(得分:1)
与onTouchListener / onClickListener一起一无所有。这是停止'mr'的问题
它是'IllegalState',我认为这是因为mr.stop()不是因为它被停止了。您必须添加一个布尔值来检查它是否已停止或启动。
boolean started = false;
如果您在代码中启动或停止它,请将其设置为true / false。然后在停止:
public void StopRecord(){
if(started){
mr.stop();
}
mr.release();//maybe with this too
mr = null;
}