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

Android 如何将OnCompletionListener设置为更早的时间?,android,android-mediaplayer,Android,Android Mediaplayer,我正在尝试循环一个MediaPlayer.seekTo()调用以无限期地重复歌曲的某一部分 我目前可以通过使用如下倒计时器实现这一点: Handler mHandler = new Handler(); mHandler.postDelayed(new Runnable) { public void run() { mediaPlayer.seekTo(startTime); } }, endTime - startTime); 然而,简单地在应用程序周围放置一

我正在尝试循环一个MediaPlayer.seekTo()调用以无限期地重复歌曲的某一部分

我目前可以通过使用如下倒计时器实现这一点:

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable) {
    public void run() {
        mediaPlayer.seekTo(startTime);
    }
}, endTime - startTime);
然而,简单地在应用程序周围放置一个循环会导致应用程序挂起。我认为可以通过使用OnCompletionListener再次调用seekTo()来实现这一点,而不是使用循环。是否可以在到达my endTime变量而不是歌曲的实际结尾时运行OnCompletionListener


谢谢。

我可以通过启动第二个线程并让它在run()函数中执行循环,而不是使用带有postdayed endTime-startTime的处理程序来实现这一点。在该循环中,我检查当前位置是否==endTime,如果它是,它将调用seekTo(startTime)。

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