我有一个 MediaPlayer(.wav 文件),有时需要快速连续重复。如果它已经在播放,我重新启动它:
if (player.isPlaying()) {
player.pause();
player.seekTo(0);
}
player.start();
问题是,当 MediaPlayer 在某个随机位置中断时,最后通常会出现微小但明显的沙哑噪音。
我尝试过的一个解决方案是创建一个加载相同 wav 文件的 MediaPlayers 数组,循环播放它们,从不中断,如果当前项目已经在播放,则忽略呼叫(这种情况很少发生,并且未接来电不是无论如何,在一般弹幕中都注意到了)。
MediaPlayer player = players.get(current);
if (!player.isPlaying())
player.start();
if((++current) >= players.size())
current = 0;
这消除了噪音,但解决方案有点难看。有没有更好的办法?