例如,我想播放3首歌。当第一首歌结束时,第二首歌开始,当第二首歌结束时,第三首歌开始,当第三首歌结束时,第一首歌再次开始,以此类推。这里用的是mp.setOnCompletionListener吗?
发布于 2015-09-20 11:52:24
你是正确的。你可以做这样简单的事情:
public class MainActivity extends Activity {
MediaPlayer mp1, mp2, mp3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mp1 = MediaPlayer.create(this, R.raw.music_1);
mp2 = MediaPlayer.create(this, R.raw.music_2);
mp3 = MediaPlayer.create(this, R.raw.music_3);
mp1.start();
mp1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp2.start();
}
});
mp2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp3.start();
}
});
mp3.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp1.start();
}
});
}
}这将播放mp1和onCompletion of it,它将播放mp2和onCompletion of mp2,它将播放mp3和onCompletion of mp3,它将再次播放mp1等等。
发布于 2015-09-20 13:10:17
首先声明3个MediaPlayer文件:
MediaPlayer song1;
MediaPlayer song2;
MediaPlayer song3;然后初始化MediaPlayer对象:
song1 = MediaPlayer.create(this, R.raw.exampleSong1);
song2 = MediaPlayer.create(this, R.raw.exampleSong2);
song3 = MediaPlayer.create(this, R.raw.exampleSong3);现在开始第一个媒体文件
song1.start();现在,在创建了每个实例之后,您应该向每个MediaPlayer对象添加一个setOnCompletionListener,如下所示:
song1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
song2.start();
}
});对第二个和第三个MediaPlayer文件执行相同的操作:
song2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
song3.start();
}
});
song3.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
song1.start();
}
});https://stackoverflow.com/questions/32678910
复制相似问题