播放base64音频文件不适用于最新版本的Chrome(46.0.2490.86 m)

时间:2015-11-27 10:35:58

标签: javascript google-chrome audio

我在最新的Chrome 46.0.2490.86 m

上播放base64音频文件时遇到问题

此音频文件只能播放1次。它不会第二次播放。

我们需要刷新浏览器再次中继。 此文件在以前版本的Chrome上运行良好(可以多次重播而无需刷新浏览器)。

这是我的代码:

window.playAudio1 = function () {
    var audio = document.getElementById("audio");
    audio.src = "<base64 mp3 audio>";
    audio.play();
}

window.playAudio2 = function () {
    var audio = document.getElementById("audio");
    audio.src = "<base64 mp3 audio>";
    audio.play();
}

JSFiddle

1 个答案:

答案 0 :(得分:1)

我最近遇到了同样的问题。

我能让它工作的唯一方法是在base64信息中包含一些随机信息。

e.g。

        
        function beep()
        {
            try
            {
                var snd = new Audio("data:audio/wav;rnd=" + getRandom(1,100000) + ";base64,<<raw base64 data>>");
                snd.load();
                snd.currentTime = 0;
                snd.play();
            }
            catch(e)
            {
                alert(e);
            }
        }

        function getRandom(min, max) {
            return Math.random() * (max - min) + min;
        }

我也尝试添加.load()和.currentTime = 0,但说实话,我不认为它们是修复所必需的,但是没有尝试过。

享受!