为 MediaPlayer 设置回调以在 X 秒后调用

Set a callback for MediaPlayer to get called after X seconds

我得到了一个 MediaPlayer 对象,比方说,歌曲播放 5 秒后应该调用回调。

如何使用 MediaPlayer 将其存档?

或者是否需要创建一个包装器,启动一个新线程,在该线程中等待 5 秒并调用回调函数?

MediaPlayer 没有任何此类功能,但实现此功能的一种方法是使用 Handler.postDelayed(Runnable, long)。这将在特定延迟后执行 Runnable。 https://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable, long)

另一种选择是Timer.schedule(TimerTask, long)https://developer.android.com/reference/java/util/Timer.html#schedule(java.util.TimerTask, 长)

Handler 是您正在寻找的东西,因为媒体播放器没有任何 api 这方面的东西。

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
    //Do something after 2000ms
    playMusic()
  }
}, 2000);