2016-08-04 9 views
0

私は音楽をSDカードから取得し、リストビューで曲の詳細​​を表示し、itemOnclick Listenerを設定しようとしています。正しく曲を再生できます私は、リスト内の別の項目をクリックしたときに、ここで最初のものを停止することなく、他の曲の開始を表示私のコードリストからmysicを再生する方法

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を設定しようとしましたが、曲が再生されている場合、それはそれを停止しますが、それもいけない仕事私のために何かヒントやどこに間違っている?

あなたがクリックしたときに

答えて

0

は、新しいメディアプレーヤを作る、アイテムのクリックリスナーに

mediaPlayer = new MediaPlayer(); 

外でこれを宣言しますが、新しいメディアプレーヤが再生されていないので、遊ん2メディアプレーヤがあります。

+0

この行を削除すると、エラー – SAVVY

+1

が表示され、mediaPlayer = new MediaPlayer()を転送できます。 – lanniaoyidingying

+0

1つのmediaPlayerのみが必要です。 – lanniaoyidingying

関連する問題