嘿我想在包含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)
有谁知道如何解决这个问题?我真的不明白这个消息想告诉我什么。
答案 0 :(得分:0)
SoundPool.load()
的三参数形式将Context
引用作为参数。 Activity
扩展了Context
,因此,如果您在Activity
子类中编写代码,则可以使用this
。
你没有这样做 - 你在一个通用的Thread
实例中 - 编译器让你知道。
要解决此问题,您需要引用Activity
课程中的Runnable
个实例,并将其作为第一个参数传递给load()
。