如何将OnCompletionListener设置为更早的时间?

时间:2015-12-11 04:09:08

标签: android android-mediaplayer

我试图循环播放MediaPlayer.seekTo()以无限期地重复一段歌曲。

我目前能够通过使用倒数计时器实现这一次:

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable) {
    public void run() {
        mediaPlayer.seekTo(startTime);
    }
}, endTime - startTime);

然而,简单地放一个循环会导致应用程序挂起。而不是使用循环,我想我可以通过使用OnCompletionListener再次调用seekTo()来完成这项工作。是否可以在到达我的endTime变量而不是歌曲的实际结尾时运行OnCompletionListener?

感谢。

1 个答案:

答案 0 :(得分:0)

我能够让它工作,而不是使用带有postDelayed endTime - startTime的Handler,只需启动第二个线程并让它在run()函数内执行循环。在该循环内部,我检查当前位置是否== endTime,如果是,则调用seekTo(startTime)。