【问题标题】:Noise when restarting MediaPlayer重新启动 MediaPlayer 时的噪音
【发布时间】:2016-10-08 02:02:11
【问题描述】:

我有一个有时需要快速连续重复的 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;

这消除了噪音,但解决方案有点难看。有没有更好的办法?

【问题讨论】:

    标签: java android android-mediaplayer


    【解决方案1】:

    噪声可能是在周期中间被剪切的波形。它可以通过在停止和启动之前调用 setVolume 来修复。拥有多个 MediaPlayer 并不是一个糟糕的主意,但您可能想看看 SoundPool

    【讨论】:

    • 谢谢! setVolume() 没有帮助,但 SoundPool 运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多