2016-08-04 26 views
0

Ich versuche, die Songs von der SD-Karte Musik und Anzeige der Details des Songs in der Listenansicht und Einstellung itemOnClick Listener in. Ich bin in der Lage, das Lied richtig zu spielen, aber wenn ich ein anderes Element in der Liste klicken sie auf den anderen Song Start anzeigen, ohne die ersten hier zu stoppen ist mein CodeWie Mysic aus der Liste zu spielen

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(); 
      } 
     } 
    }); 

ich versuchte isPlaying zu setzen und wenn der Song abgespielt wird es aufhören wird, sondern dass auch nicht arbeiten für mich irgendeinen Hinweis oder wo ich falsch mache ??

Antwort

0

außerhalb der Deklarieren Sie diese auf Artikel klicken Zuhörer

mediaPlayer = new MediaPlayer(); 

, wenn Sie auf, Sie einen neuen Mediaplayer zu machen, aber der neue Mediaplayer spielt nicht, so gibt es zwei Mediaplayer zu spielen.

+0

Wenn ich diese Zeile entferne, wird der Fehler – SAVVY

+1

angezeigt. Sie können mediaPlayer = new MediaPlayer() weiterleiten. – lanniaoyidingying

+0

nur ein MediaPlayer benötigt. – lanniaoyidingying