【发布时间】:2018-10-21 02:27:02
【问题描述】:
在我的音乐播放器中,如果一首歌曲已经在播放,并且如果用户点击另一首歌曲,那么该歌曲也会开始播放。换句话说,一次播放多首歌曲,这真的很烦人。我一次想要一首歌。这意味着如果一首歌曲已经在播放,并且如果用户点击另一首歌曲,那么前一首歌曲将会停止,而点击的歌曲将会播放。
java代码
public void onItemClick(final Button b, View view, final SongInfo obj, int position) {
if(b.getText().equals("Stop")){
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;
b.setText("Play");
}
else {
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(obj.getSongUrl());
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
seekBar.setProgress(0);
seekBar.setMax(mediaPlayer.getDuration());
Log.d("Prog", "run: " + mediaPlayer.getDuration());
}
});
b.setText("Stop");
}catch (Exception e){}
}
};
myHandler.postDelayed(runnable,100);
}
}
});
checkUserPermission();
Thread t = new runThread();
t.start();
}
//Thread method for seek bar
public class runThread extends Thread {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.d("Runwa", "run: " + 1);
if (mediaPlayer != null) {
seekBar.post(new Runnable() {
@Override
public void run() {
seekBar.setProgress(mediaPlayer.getCurrentPosition());
}
});
Log.d("Runwa", "run: " + mediaPlayer.getCurrentPosition());
}
}
}
}
【问题讨论】:
标签: android android-studio audio-player android-music-player