4

我使用下面的代码在后台播放音频:

String[] Path = new String[] {path1, path2, ...};
mMediaPlayer.setDataSource(Path[i]);
mMediaPlayer.prepare();
mMediaPlayer.start();
mMediaPlayer.seekTo(0);

当我在后台播放第一个 Path[0] 时。我想让它在 Path[0] 播放完成后自动播放下一个 Path[1],如何到达?

4

2 回答 2

25

你应该像这样覆盖 onCompletionListener,

mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {           
    public void onCompletion(MediaPlayer mp) {          
        Log.i("Completion Listener","Song Complete");
        mp.stop();
        mp.reset();
        mp.setDataSource([nextElement]);
        mp.prepare();
        mp.start();
    }
});

如果您在 MediaPlayer 中使用 onPreparedListener,那么您还可以使用 prepareAsync 命令并忽略 .start()。

于 2012-04-19T07:56:47.047 回答
3

您需要为您的 MediaPlayer 设置一个 OnCompletionListener,在侦听器中将源设置为 path2,准备并播放。 http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html

于 2012-04-19T07:58:26.453 回答