Android soundpool循环不起作用:替代方案

时间:2013-11-03 17:46:20

标签: android audio multimedia

我想在Android上播放一个简短的声音(.ogg)并尝试使用soundpool。 声音应该播放几次,所以我使用了声音池循环参数。在我的Nexus 4(JB4.3)上,soundpool中的循环参数被忽略,声音只播放一次。

似乎是soundpool中的一个错误: Soundpool not looping in android 4.3

soundpool播放短音并重复播放声音的最佳选择是什么?

2 个答案:

答案 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.

的声音文件