1

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

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

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

4

2 回答 2

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();
于 2015-01-09T10:40:47.493 回答
0

我找到了解决循环问题的解决方案。

我不知道如何解决这个限制。

sizesoundpool 可以循环播放唯一的声音文件< 1mb.

于 2015-05-14T06:49:16.587 回答