1

嘿,我想在包含睡眠命令的线程内的 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)

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

4

1 回答 1

0

的三参数形式SoundPool.load()Context引用作为参数。 Activityextends Context,所以如果你在Activity子类中编写代码,你可以使用this.

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

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

于 2013-05-01T00:05:16.423 回答