我的应用中有一个调用异步任务的按钮。 此Async任务应在每个ProgressUpdate上播放音频文件。 到目前为止,我想了很多,但我坚持这个:
我打电话
this.strengthSound[0] = this.soundPool.load(this, R.raw.strength0,1);
this.strengthSound[1] = this.soundPool.load(this, R.raw.strength1,1);
this.strengthSound[2] = this.soundPool.load(this, R.raw.strength2,1);
this.strengthSound[3] = this.soundPool.load(this, R.raw.strength3,1);
this.strengthSound[4] = this.soundPool.load(this, R.raw.strength4,1);
使用strengthx.mp3 s填充数组。
无论如何:我在load语句中遇到“this”错误:
Error:(165, 57) error: incompatible types: AIM_start.start_AIM cannot be converted to Context
这个soundPool.load(Context,ResourceID,..)需要使用什么上下文?
感谢您提前帮助......:)
答案 0 :(得分:1)
private Context mContext;
onCreate(...) {
mContext = this;
}
// inside your AsyncTask
...
onProgressUpdate(int progress) {
this.strengthSound[0] = this.soundPool.load(mContext, R.raw.strength0,1);
...
}
我忘记了AsyncTasks的实际方法签名,但这是基本的纲要。你在滥用this
。
this
和AsyncTask中的this
不同。 AsyncTask中的this
引用自身,即AsyncTask,但onCreate中的this
引用(再次)本身,即Activity本身。
不确定这是否有帮助,但随时可以详细说明评论:)