我想在 Android 上播放简短的声音 (.ogg) 并尝试了 soundpool。声音应该播放几次,所以我使用了声音池循环参数。在我的 Nexus 4 (JB4.3) 上,soundpool 中的 loop 参数被忽略,声音只会播放一次。
这似乎是 soundpool 中的一个错误: Soundpool not looping in android 4.3
soundpool 播放短声音并重复该声音的最佳选择是什么?
我想在 Android 上播放简短的声音 (.ogg) 并尝试了 soundpool。声音应该播放几次,所以我使用了声音池循环参数。在我的 Nexus 4 (JB4.3) 上,soundpool 中的 loop 参数被忽略,声音只会播放一次。
这似乎是 soundpool 中的一个错误: Soundpool not looping in android 4.3
soundpool 播放短声音并重复该声音的最佳选择是什么?
这个问题正在 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();
我找到了解决循环问题的解决方案。
我不知道如何解决这个限制。
size
soundpool 可以循环播放唯一的声音文件< 1mb.