尝试使用mediaPlayer和if / else一次只播放一个音频文件

时间:2012-02-17 15:40:33

标签: android android-mediaplayer

我试图跟随其他问题,但我认为它们不是我想要的。

这是我的java:http://pastie.org/private/psy2nnys8i0ajz4i8qfw

我知道我正在打开mp的多个实例,所以我尝试检测是否正在播放,并在第34-39行停止,但它仍然重叠

请指教。我尝试了单例 - 但是这不起作用,我也尝试使用一个媒体播放器实例并设置数据源,但无法弄清楚如何将R.raw.clipname传递给它。

谢谢!

2 个答案:

答案 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;
 }