单击其他按钮时,MediaPlayer需要单击2次才能播放

时间:2014-05-12 10:03:41

标签: android media-player playback

我在GridView中有MediaPlayer,onItemClickListener有案例。 我只为所有案例/文件使用了一个MediaPlayer实例。但是有了我的代码,就会发生这种情况:我在第一个按钮上启动mp。我想玩第二个按钮。会发生什么,当我点击第二个按钮MP停止然后我必须再次点击播放它。 有什么方法可以避免这种情况吗?

这是我的代码:

if (mPlay.isPlaying()) {
                        mPlay.reset();
                    } else {

                        mPlay = MediaPlayer
                                .create(ActivityM.this, R.raw.sound1);

                        mPlay.start();
                    }

所有案例的代码都相同,唯一的区别是文件。 我也尝试了mPlay.stop(); mPlay.Pause(); mPlay.seekTo(0);等,但同样的事情发生了。

1 个答案:

答案 0 :(得分:2)

Switch Case事件中使用onItemClickListener onItemClick(.....),例如

grid.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
switch(position){

    case 0:
     mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound1);
     break;
    case 1:
     mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound2);
     break;
    case 2:
    mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound3);
     break;
    .... so on
    default:
 break; 
 }
  }
});

希望这会对你有所帮助。