我已经搜索过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));

最佳答案

我遇到了同样的问题。根据我的实验,ID处理似乎有问题。 SoundPool只是不喜欢数字0的声音ID。

因此,我找到了一种解决方法。以1而不是0开头我的示例ID。希望它能起作用。

关于Android 2.2-SoundPool示例0尚未就绪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7786314/

10-10 18:05