我正在使用AudioTrack实例播放音乐。当用户在歌曲中改变歌曲或寻找时我想在播放新数据之前刷新缓冲区。 documentation for stop()似乎引导我做类似的事情:
audioTrack.pause();
audioTrack.flush();
audioTrack.play();
audioTrack.write(newData, ...);
但是,这通常会产生轻微的静电。我尝试了一些解决方法。在我的测试设备上工作的一个(如摆脱静态)是flush()之后的Thread.sleep(10,0)。但它感觉非常hackish和任意,如果它不能在其他设备上工作怎么办?此外,我不想阻止纳米片超过必要的时间。
解决这个问题的正确方法是什么?