安卓:MediaPlayer.setOnPreparedListener()

标签 android runnable android-mediaplayer

我有一个服务,它实现了 MediaPlayer.OnPreparedListener

到目前为止,我在一个函数中调用了 player.setOnPreparedListener(this) 并且运行良好。现在我想从 Runnable 调用 setOnPreparedListener(使用 Handler),但出现错误:

The method setOnPreparedListener(MediaPlayer.OnPreparedListener) in the type MediaPlayer is not applicable for the arguments (new Runnable(){})

因此,我需要使用指向当前 class 的东西,而不是 this。问题是,哪个

最佳答案

我假设当您调用 player.setOnPreparedListener(this) 时,您的 Activity 实现了 MediaPlayer.OnPreparedListener。而您的 Runnable 不是(当然)。有两种选择:

  1. 如果此 runnable 在 Activity 内部实现,请使用完全限定的 this:YourActivity.this
  2. 如果没有,您可以仅在调用点实现此监听器:

    player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
        // do stuff here
        }
    }
    

关于安卓:MediaPlayer.setOnPreparedListener(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247831/

相关文章:

java - Android 蓝牙应用程序在启动时崩溃

java - 移动提供商无法进行 UDP 打洞

android - Facebook SDK "Package bolts does not exist error"安卓工作室

java - "implements Runnable"与 Java 中的 "extends Thread"

android - 我的Android音乐播放器怎么了?每次都会在try\catch语句中进行CATCH,为什么?

android - 内存不足错误: vast bitmap

java - 如何启动不阻塞Java主线程的后台线程?

android - 通过 Runnable 启动新 Activity

java - android recyclerview viewholder Mediaplayer处理点击问题

java - 如何停止播放 ActionBar 的声音? (音板)