使用soundpool和setOnLoadCompleteListener的问题

时间:2012-08-30 20:50:07

标签: android soundpool

所以我使用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,所以应该没问题。有什么想法与它有问题吗?

2 个答案:

答案 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 ...