0
我有一个声音文件名的数组。我希望媒体播放器依次播放每一个。但是,循环时,它们都是同时播放的。 这是什么解决方案?在android中播放句子MediaPlayer
public static void PlaySentence(Context ctx, ArrayList<String> words)
{
final ArrayList<MediaPlayer> players = new ArrayList<MediaPlayer>();
for (String t : words)
{
int sound_id = ctx.getResources().getIdentifier(t, "raw", ctx.getPackageName());
if(sound_id != 0) {
MediaPlayer newMP = MediaPlayer.create(ctx, sound_id);
newMP.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
players.remove(mp);
if (players.size() > 0)
{
Log.d("player", "size " + players.size());
players.get(0).start();
}
mp.release();
}
});
players.add(newMP);
}
}
players.get(0).start();
}
感谢
显示你的代码 – stinepike
您需要在您的媒体播放器设置'onCompletionListener'并播放当前的下轨oncompletion 。 http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html –
请参阅我的新代码。它在中间停止播放。有什么问题 – Himberjack