【问题标题】:Android soundpool loop not working: AlternativeAndroid soundpool 循环不工作:替代
【发布时间】:2013-11-03 17:46:20
【问题描述】:
我想在 Android 上播放短声音 (.ogg) 并尝试了 soundpool。
声音应该播放几次,所以我使用了声音池循环参数。在我的 Nexus 4 (JB4.3) 上,soundpool 中的循环参数被忽略,声音只会播放一次。
这似乎是 soundpool 中的一个错误:
Soundpool not looping in android 4.3
soundpool 播放短声音并重复该声音的最佳选择是什么?
【问题讨论】:
标签:
android
audio
multimedia
【解决方案1】:
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();
【解决方案2】:
我找到了解决循环问题的解决方案。
我不知道如何解决这个限制。
可以循环播放size为< 1mb.的纯声音文件的soundpool