如何从列表中玩mysic

时间:2016-08-04 15:07:21

标签: android media-player android-mediaplayer

我正在尝试音乐从SD卡中获取歌曲并在列表视图中显示歌曲的详细信息并在其中设置itemOnclick Listener。我能够正确播放歌曲,但是当我点击其他项目时列表视图其他歌曲开始而不停止第一个这里是我的代码

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Mediafileinfo item = audioList.get(i);
            Uri myUri = Uri.parse(item.getData());


            mediaPlayer = new MediaPlayer();
            if(!mediaPlayer.isPlaying())
            {mediaPlayer.reset();
                try {
                    mediaPlayer.setDataSource(MainActivity.this, myUri);
                } catch (IOException e) {
                    e.printStackTrace();
                }


                try {
                    mediaPlayer.prepare();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                mediaPlayer.start();

            }
           else if (mediaPlayer.isPlaying()) {
                mediaPlayer.stop();
                   mediaPlayer.reset();
                try {
                    mediaPlayer.setDataSource(MainActivity.this, myUri);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                try {
                    mediaPlayer.prepare();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                mediaPlayer.start();
            }
        }
    });

我尝试设置isPlaying,如果这首歌正在播放,它会停止播放,但这对我来说也没有任何提示或我做错了?

1 个答案:

答案 0 :(得分:0)

在项目点击侦听器

之外声明此内容
 mediaPlayer = new MediaPlayer();

当你点击时,你制作了一个新的mediaPlayer,但新的mediaPlayer没有播放,所以有两个mediaPlayer正在播放。