我试图跟随其他问题,但我认为它们不是我想要的。
这是我的java:http://pastie.org/private/psy2nnys8i0ajz4i8qfw
我知道我正在打开mp的多个实例,所以我尝试检测是否正在播放,并在第34-39行停止,但它仍然重叠
请指教。我尝试了单例 - 但是这不起作用,我也尝试使用一个媒体播放器实例并设置数据源,但无法弄清楚如何将R.raw.clipname传递给它。
谢谢!
答案 0 :(得分:1)
尝试调试/跟踪代码会有点困难。但我可以为您提供一个解决方案,在MediaPlayer
中打开原始资源,这也将使您的代码更加健壮和简单:
MediaPlayer player=new MediaPlayer();
player.setDataSource(
getResources().openRawResourceFd(R.raw.clip1).getFileDescriptor());
答案 1 :(得分:0)
使用这一个:
@覆盖
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP://int end
pv.stop();
pv.reset();
pv=MediaPlayer.create(MainActivity.this,R.raw.slot);
Toast.makeText(this,"stop",Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_DOWN://in start
pv.start();
Toast.makeText(this,"play",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return false;
}