单击项目Listview时暂停音乐?

时间:2013-12-20 09:12:59

标签: android listview

我有一个listview(3项)

list.setOnItemClickListener(new OnItemClickListener() {

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

                LoadMp3(getUrl[0]);

                break;
            case 1:

                LoadMp3(getUrl[1]);

                break;
            case 2:

                LoadMp3(getUrl[2]);

                break;
            case 3:

                LoadMp3(getUrl[3]);

                break;

我想点击项目时播放音乐(例如:item1),并在点击不同项目(第2项)时暂停第1项的音乐,并在第2项播放音乐。请帮帮我!

    public void LoadMp3(String name) {
    try {
        m = new MediaPlayer();

        AssetFileDescriptor descriptor = MainActivity.this.getAssets()
                .openFd(name);
        m.setDataSource(descriptor.getFileDescriptor(),
                descriptor.getStartOffset(), descriptor.getLength());
        descriptor.close();
        m.prepare();
        m.start();
        m.setLooping(false);
    } catch (Exception e) {
        // handle error here..
    }
}

4 个答案:

答案 0 :(得分:0)

选中创建另一个按钮clickListener,将条件写为isplaying()然后pause();

 if(m.isPlaying()){
    m.pause();

    }

答案 1 :(得分:0)

试试这个:

if(null==m){
    m = new MediaPlayer();
}else if(m.isPlaying()){
    m.pause();
}

答案 2 :(得分:0)

尝试以下代码

list.setOnItemClickListener(new OnItemClickListener() {

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

           LoadMp3(getUrl[arg2]);
         }
    }


     public void LoadMp3(String name) {
      try {
         if(m!=null){
            if(m.isPlaying()){
              m.stop();
              m=null;
           }    
        }
        m = new MediaPlayer();

        AssetFileDescriptor descriptor = MainActivity.this.getAssets()
                .openFd(name);
        m.setDataSource(descriptor.getFileDescriptor(),
                descriptor.getStartOffset(), descriptor.getLength());
        descriptor.close();
        m.prepare();
        m.start();
        m.setLooping(false);
    } catch (Exception e) {
        // handle error here..
    }
  }

答案 3 :(得分:0)

创建MediaPlayer的全局实例

    if(m.Playing()){
       m.Pause();
       LoadMp3(nameofFile);
    }