2016-10-11 5 views
0

SeekBarを更新するスレッドを使用しています。スレッドを開始しないと、この問題は発生しません。今何ができますか...?私は私のプロジェクトのこの部分の問題しか経験しません。 Androidの文書でマイ・ミュージック・プレーヤー・リストで曲を見る2回目に曲目が表示されない

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      if (mp != null) { 
       mp.stop(); 
       mp.release(); 
       toast("Second Time"); 

      } 

      u = Uri.parse(collectedSong.get(position).toString()); 
      mp = MediaPlayer.create(getApplicationContext(), u); 
      mp.start(); 
      sb.setMax(mp.getDuration()); 

      **updateSeekBar.start();** 

      positionNew = position; 

     } 
    }); 

答えて

0

チェックアウトMediaPlayerのライフサイクル:私は願っています

public void onSongClicked(Song song) { 
    //check if is playing 
    stopMediaPlayer(); 

    // prepare media player to play sample 
    mMediaPlayer = new MediaPlayer(); 
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 

    mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      mp.start(); 
     } 
    }); 

    mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      mp.release(); 
      mMediaPlayer = null; 
     } 
    }); 

    try { 
     mMediaPlayer.setDataSource(song.getPath()); 
     mMediaPlayer.prepareAsync(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public void stopMediaPlayer() { 
    if (mMediaPlayer != null) { 
     mMediaPlayer.stop(); 
     mMediaPlayer.release(); 
     mMediaPlayer = null; 
    } 
} 

https://developer.android.com/reference/android/media/MediaPlayer.html

Android MediaPlayer lifecycle

これは、私は、ストリームの曲を再生するメディアプレーヤーを使用する方法でありますそれは助ける:)

関連する問題