soundPool.load()里面(等待)线程?

时间:2013-04-29 01:48:24

标签: android multithreading soundpool

嘿我想在包含sleep命令的Thread内的soundPool上加载声音。我正在讨论的块看起来像那样:

Thread wait = new Thread() {
    @Override
    public void run() {
       try {

          sleep(800);
          soundsMap.put(SOUND5, soundPool.load(this, R.raw.w5, 1));

       } catch (InterruptedException e) {
          // blub
       } finally {

       }
    }
 };
 wait.start();

Eclipse在load标记错误并写道:

  

load(Context, int, int)类型中的方法SoundPool不适用于参数(new Thread(){}, int, int)

有谁知道如何解决这个问题?我真的不明白这个消息想告诉我什么。

1 个答案:

答案 0 :(得分:0)

SoundPool.load()的三参数形式将Context引用作为参数。 Activity扩展了Context,因此,如果您在Activity子类中编写代码,则可以使用this

你没有这样做 - 你在一个通用的Thread实例中 - 编译器让你知道。

要解决此问题,您需要引用Activity课程中的Runnable个实例,并将其作为第一个参数传递给load()