如何在ListView项目上单击使用Media Player的单个实例

时间:2012-09-07 17:28:26

标签: android listview singleton android-mediaplayer

我想在用户触摸Listview中的项目时播放声音。我制作了列表视图,以下是项目点击监听器的点击实现。

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapter, View view,int pos, long id) {

 //Here I am getting getting sound bytes from raw folder with name
 // like "a"+pos and using getResourse

  mp.create(context, resid);
  mp.start();

    }
 });

我对Android的MediaPlayer知之甚少

我的问题是我应该如何使用媒体播放器播放单一实例的声音。我使用了媒体播放器(参见上面的代码),但如果用户点击多次,它会播放多个声音实例。如果我没有错,最好在全球范围内调用mediaplayer.create()。但是我将如何传递媒体文件的资源ID。

1 个答案:

答案 0 :(得分:3)

首先,您需要检查每个项目点击时MediaPlayer是否为空。

    if(mp!=null) {
        try{
            mp.stop();
            mp.release();
        } catch(Exception e){
            Log.w("Exception", e);
        }
    }

然后您可以使用相同的媒体播放器播放另一种声音,例如

mp = MediaPlayer.create(YOUR_ACTIVITY_NAME.this, YOUR_SOUND_FILE);
mp.prepare();
mp.start();

希望这可以帮助您解决问题。

可能这不是最好的方法,如果有人知道其他方法,请更新我。

谢谢!