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