我搜索了 StackOverflow 并找不到像我这样的情况。我正在使用四个按钮,每个按钮播放一个声音文件。
我正在使用 SoundPool:
SoundPool sound = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
我也在使用OnLoadCompleteListener()
其中使用 Log 在 LogCat 中创建 I 通知。
当我在模拟器中启动程序时,我看到所有四个样本都已完成加载。在节目中,三个声音会播放,然而,一个总是说:
WARN/SoundPool(4842): sample 0 not READY
Any Ideas..因为我很吃惊。声音文件是播放方波音调的 16 位 pcm 波形文件。
加载代码:
sound.setOnLoadCompleteListener(new OnLoadCompleteListener(){
@Override
public void onLoadComplete(SoundPool sound, int sampleId, int status) {
if(status != 0)
Log.e("SOUND LOAD"," Sound ID: " + sampleId + " Failed to load.");
else
Log.i("SOUND LOAD"," Sound ID: " + sampleId + " loaded.");
}
});
soundID[0] = sound.load(this, R.raw.greennote, 1);
soundID[1] = sound.load(this, R.raw.rednote, 1);
soundID[2] = sound.load(this, R.raw.yellownote, 1);
soundID[3] = sound.load(this, R.raw.bluenote, 1);
播放声音:
streamid.setStreamId(myActivity.sound.play(id, 0.5f, 0.5f, 0, 0, 1));