我是Android新手。在我的应用程序中,MediaPlayer按顺序播放歌曲组。歌曲存储在一个arraylist中,歌曲名称存储在另一个arraylist中..
for(i=0;i< songarray.sizeof();i++)
{
mp=MediaPlayer.create(this,(Integer) songarray.get(i));
sname.setText(songname.get(i));
mp.start
}
问题是歌曲只播放一首然后打印一首歌名。
答案 0 :(得分:2)
你应该设置一个听众到歌曲的结尾,然后开始下一个(BTW - 什么是sizeof()
):
int index = 0;
sname.setText(songname.get(i));
mp = MediaPlayer.create(this,(Integer) songarray.get(i));
mp.start(); //as per @iturki comment
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer player) {
mp.release();
if (i < (songarray.size() - 1)) {
i++;
mp = MediaPlayer.create(this,(Integer) songarray.get(i));
sname.setText(songname.get(i));
mp.setOnCompletionListener(this);
mp.start();
}
}
});