1

所以我使用 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 给了我以下错误

SoundPool 类型中的方法 setOnLoadCompleteListener(SoundPool.OnLoadCompleteListener) 不适用于参数 (new OnLoadCompleteListener(){})

我尝试了各种方法,例如“Android 工具 -> 修复项目属性”和摆弄“属性 -> Java 编译器”,但没有任何乐趣。我的 API 范围是 10 - 16,所以应该没问题。有什么想法有什么问题吗?

4

2 回答 2

3

使用下面的代码。也许你的进口是错误的。无论如何,这应该工作

soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
    @Override
    public void onLoadComplete(SoundPool soundPool, int mySoundId, int status) {
        loaded = true;
    }
});
于 2012-08-30T21:23:50.163 回答
0

我遇到了同样的问题,然后我注意到我只需要导入android.media.SoundPool.OnLoadCompleteListener ...

于 2015-02-25T15:40:48.367 回答