我在StackOverflow上搜索了,但找不到和我的情况相似的解决方案。我正在使用四个按钮,每个按钮都会播放一个声音文件。
我正在使用SoundPool:
SoundPool sound = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
我还使用了OnLoadCompleteListener()
,它使用Log在LogCat中创建I通知。
当我在模拟器中启动程序时,我看到所有四个样本都已经加载完成。在程序运行期间,其中三个声音将会播放,然而,总有一个声音会显示:
WARN/SoundPool(4842): sample 0 not READY
有什么想法吗?因为我感到非常困惑。这些声音文件是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));