我想在Android上播放一个简短的声音(.ogg)并尝试使用soundpool。 声音应该播放几次,所以我使用了声音池循环参数。在我的Nexus 4(JB4.3)上,soundpool中的循环参数被忽略,声音只播放一次。
似乎是soundpool中的一个错误: Soundpool not looping in android 4.3
soundpool播放短音并重复播放声音的最佳选择是什么?
答案 0 :(得分:0)
此问题正在Android问题跟踪器(http://code.google.com/p/android/issues/detail?id=58113)中进行讨论。
显然没有直接的解决方法。
在audioTrack中,可以使用setLoopPoints()API调用实现声音循环。
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRateInHz, AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, totalNumOfSamples,
AudioTrack.MODE_STATIC);
audioTrack.write(pcmdata, 0, pcmdata.length);
//the end frame is the length/4 if it is 16bites
audioTrack.setLoopPoints(0,pcmdata.length/4,-1);
audioTrack.play();
答案 1 :(得分:0)
我找到了解决循环问题的解决方案。
我不知道如何使用此限制。
soundpool,可以循环size
为< 1mb.