2013-10-28 92 views
1

我有一个MediaPlayer(.wav文件),有时需要快速连续重复。如果它已经打,我重新启动它:重新启动MediaPlayer时的噪音

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; 

这样摆脱了噪音,但解决方案有点丑。有没有更好的办法?

回答

1

噪音可能是波形在中周期被切断。在停止和启动之前,可能会调用setVolume来修复它。拥有多个MediaPlayers并不是一个可怕的想法,但你可能想看看SoundPool

+0

谢谢! setVolume()没有帮助,但SoundPool很好地工作。 – Grunthos

+0

欢迎您。随时接受答案:) – Dave

相关问题