javascript - 请求自动播放音频文件的权限

标签 javascript jquery

我在 js 中有一个函数可以检查可变日期,如果存在,它将启动一个音频文件。

由于新的隐私设置,不可能自动启动音频文件,事实上在我的情况下它被阻止了。 我希望浏览器框显示同意复制音频文件。

但是,我不知道该怎么做。 你能帮我吗?

var audio = new Audio('/sound/file-one.mp3');

setInterval(function() {
    $.ajax({
        url: '/check_data.php',
        type: 'post',
        data: {
            'check_data' : 1
        },
        success: function(response){
            if (response != "false") {
                audio.addEventListener('ended', function () {
                    audio.play();
                }, false);
                audio.play();
            }
        }
    });
}, 5000);

最佳答案

用户必须启动音频,通过用户操作启动音频后,您可以随时更改源。

const audio = document.getElementById("au");
let bt = document.getElementById("bt");
console.log(audio);
bt.addEventListener("click", ()=>{
  audio.play();
});
const startPlaying = ()=>{
  audio.removeEventListener('playing', startPlaying);
  bt.classList.add("hide");
  audio.src = 'https://freesound.org/data/previews/475/475736_4397472-lq.mp3';
  audio.play();
}
audio.addEventListener('playing', startPlaying);
audio.addEventListener('error', ()=>{
  console.log("error");
});
.hide{
  display:none;
}
<input id="bt" type="button" value="Accept">
<audio id="au" preload="auto" src="https://raw.githubusercontent.com/anars/blank-audio/master/500-milliseconds-of-silence.mp3"></audio>

关于javascript - 请求自动播放音频文件的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56834621/

相关文章:

javascript - ReactDOM.render 不会在 props 更改时更新组件

javascript - 覆盖 span 元素的边框样式

javascript - 声明超过 10 个对象

javascript - jquery 自动刷新后 div 弹出窗口不起作用

javascript - jQuery 代码可以在 Firebug 中运行,但不能单独运行

javascript - 从 ul li jquery 中获取选定的项目

javascript - jQuery 选择器上下文与最外层元素不匹配

javascript - JavaScript构造函数可以返回函数并保持继承吗?

javascript - 从 xml 字符串填充 jstree

javascript - 如何将带有 javascript (jquery) 的整数值添加到返回字符串的值?