使用 AudioContext 播放音频,解决谷歌禁止自动播放音频

前端APP 投稿 13900 0 评论

使用 AudioContext 播放音频,解决谷歌禁止自动播放音频

使用 AudioContext 播放音频,解决谷歌禁止自动播放音频。


playAudio('/common/bg.mp3', true;

function playAudio(audio_src, loop {
    if (typeof loop == 'undefined' {
        loop = false;
    }
    var AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext;
    try {
        var globalBgAudioContext = new AudioContext(;
        var source = null;
        var audioBuffer = null;

        function stopSound( {
            if (source {
                source.stop(0;
            }
        }

        function playSound( {
            source = globalBgAudioContext.createBufferSource(;
            source.buffer = audioBuffer;
            source.loop = loop;
            source.connect(globalBgAudioContext.destination;
            source.start(0;
        }

        function initSound(arrayBuffer {
            globalBgAudioContext.decodeAudioData(arrayBuffer, function (buffer {
                audioBuffer = buffer;
                playSound(;
            }, function (e {
                console.log('Error decoding file', e;
            };
        }

        function loadAudioFile(url {
            var xhr = new XMLHttpRequest(;
            xhr.open('GET', url, true;
            xhr.responseType = 'arraybuffer';
            xhr.onload = function (e {
                initSound(this.response;
            };
            xhr.send(;
        }

        loadAudioFile(audio_src;
        $("#stop".click(function ( {
            stopSound(;
        };
    } catch (e {
        console.log('!Your browser does not support AudioContext';
    }

    document.documentElement.addEventListener('mousedown', ( => {
        if (globalBgAudioContext.state !== 'running'
            globalBgAudioContext.resume(;
    };
}

编程笔记 » 使用 AudioContext 播放音频,解决谷歌禁止自动播放音频

赞同 (72) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽