4

我正在尝试使用手机上的 HTML5 音频标签播放音频。我已经加载了声音,但是当我运行 .play() 命令时,什么也没有发生。我使默认控件可见,以便我通过按下该播放按钮进行测试,并且该按钮有效并且声音播放。我还尝试通过从地址栏中执行 javascript 来播放声音,并且效果也很好。

我用来播放的代码如下所示:

setInterval(function(){
    if(blahblah){
        document.getElementById("player").play();
    }
},500);

为了确保它甚至尝试播放声音,我在它后面放了一个警报,如下所示:

setInterval(function(){
    if(blahblah){
        document.getElementById("player").play();
        alert("Played!");
    }
},500);

我看到了警报,但没有播放任何声音。

谢谢你的帮助 :)

4

1 回答 1

1

大多数移动设备只允许您播放作为用户交互结果的音频。如果您将播放代码放入按钮单击事件中,它应该可以工作(假设您的代码中没有其他错误),但是设备会阻止您的音频从内部播放,setInterval因为它认为它没有用户的权限玩。

我现在所做的,我承认这是一种解决方法,是我播放并立即停止按钮单击事件中的音频,然后调用setInterval. 它现在有效——因为设备认为它已被用户授予播放该音频的权限,即使我稍后触发它也是如此。我的按钮单击事件中的代码如下所示:

document.getElementById("player").play();
document.getElementById("player").pause();

setInterval(function(){
    document.getElementById("player").play();
}, 500);

Keep in mind that on mobile, it may not play nearly as smoothly as it does on your computer. Seek alternative approaches where possible.

于 2016-05-07T22:54:08.653 回答