所以我使用soundpool在计时器结束时播放声音。 onCreate我这样做
int mySoundId;
SoundPool soundPool;
// load sound
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
AssetManager am = this.getAssets();
//Use in whatever method is used to load the sounds
try {
mySoundId = soundPool.load(am.openFd("alarm.wav"), 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我得到了
样本0未准备好
所以我发现我必须使用
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int mySoundId, int status) {
loaded = true;
}
});
但我的问题是,setOnLoadCompleteListener给了我以下错误
方法setOnLoadCompleteListener(SoundPool.OnLoadCompleteListener) 在SoundPool类型中不适用于参数(new OnLoadCompleteListener(){})
我尝试了各种things,例如“Android工具 - >修复项目属性”,并摆弄“属性 - > Java编译器”,但没有任何乐趣。我的API范围是10 - 16,所以应该没问题。有什么想法与它有问题吗?
答案 0 :(得分:3)
使用以下代码。也许你的进口是错的。无论如何这应该工作
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int mySoundId, int status) {
loaded = true;
}
});
答案 1 :(得分:0)
我有同样的问题, 然后我注意到我只是 导入 android.media.SoundPool.OnLoadCompleteListener ...