我有一个MediaPlayer(.wav文件),有时需要快速连续重复。如果它已经播放,我重启它:
if (player.isPlaying()) {
player.pause();
player.seekTo(0);
}
player.start();
问题在于,当MediaPlayer在某个随机位置被中断时,最后会发出微小但明显的沙哑声。
我尝试过的一个解决方案是创建一个MediaPlayers数组,它加载相同的wav文件,循环它们,永不中断,并忽略当前的调用 项目已经在播放(很少发生,并且无论如何都没有注意到未接来电)。
MediaPlayer player = players.get(current);
if (!player.isPlaying())
player.start();
if((++current) >= players.size())
current = 0;
这消除了噪音,但解决方案有点难看。还有更好的方法吗?
答案 0 :(得分:1)
噪声可能是在周期中间切割的波形。在停止和启动之前,可以通过调用setVolume来修复它。拥有多个MediaPlayers并不是一个糟糕的主意,但您可能需要查看SoundPool。