在移动浏览器上播放随机音轨

Playing Random Audio Tracks on mobile browsers

Objective:

用户点击了一个按钮。

随机选择一个音轨(在 3 个音轨中)并在后台播放。

问题:该曲目在桌面 Chrome 和 Firefox 上播放,但在移动设备 Chrome 上无法播放。

JS:

    function play() {
        var a = Math.random() * 3;
        a = Math.floor(a);

        if (a == 0) {
            document.getElementById('soundtrack').innerHTML = "<audio id='background_audio1' loop autoplay><source src='0.mp3' type='audio/ogg'>Your browser does not support the audio element.</audio>";
        }
        if (a == 1) {
            document.getElementById('soundtrack').innerHTML = "<audio id='background_audio1' loop autoplay><source src='1.mp3' type='audio/ogg'>Your browser does not support the audio element.</audio>";
        }
        if (a == 2) {
            document.getElementById('soundtrack').innerHTML = "<audio id='background_audio1' loop autoplay><source src='2.mp3' type='audio/ogg'>Your browser does not support the audio element.</audio>";
        }
    }

HTML:

    <a class="button" onclick="play()"><img src="image.png"/></a>

    <div id="soundtrack"></div>

如何在移动浏览器上播放此内容?这是事件驱动的(点击按钮)而不是自动播放。它应该播放但没有播放。

实际上它似乎是自动播放的,因为您没有在事件(点击)时播放文件,您只是加载新的 HTML 代码,然后请求自动播放。

如果您在替换 HTML 后立即请求 javascript 中的播放操作,它可能会起作用: document.getElementById('background_audio1').play();