2013-04-29 125 views
1

嘿,我想加载在其中包含睡眠指令线程内的Soundpool声音。我说的是块看起来像这样:soundPool.load()里面(等待)线程?

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(); 

蚀在load标志着一个错误,并写道:

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

有没有人一个想法,我怎么能解决这个问题?我真的不明白这封邮件想告诉我什么。

回答

0

SoundPool.load()的三个参数的形式取Context参考作为参数。 Activity延伸Context,所以如果你在一个Activity子类编写代码,你可以只使用this

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

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

+0

谢谢你,解决它:) – user2330482 2013-05-07 03:30:50