jquery - 在没有用户交互的情况下播放音频

标签 jquery ajax audio

我正在建立一个仪表板,在该仪表板中,用户会收到有关新订单的通知(通过声音),因此我希望播放音频而不让用户单击任何按钮
注意到这个问题:
“play()失败,因为用户没有首先与文档进行交互”。
尝试了这些帖子的答案,但没有一个能解决同样的问题
link1 link2 link3 link4 link5

我的Google Chrome版本80.0.3987.132(正式版本)(64位)

码:

的HTML

<div><audio src="../audio/message.mp3" id="mainaudio"></audio>
<button id="btn" hidden> clicked automatically</button></div>

jQuery查询
$('#btn').click(function(){document.getElementById("mainaudio").play();});
setInterval(function(){

var oldreq=$("[name='show-order[]'] span").html();
var oldsugg=$("[name='show-sugg[]'] span ").html();

$.ajax({
        url:"../include/uid.php",
        type:"post",
        data:"method=reloadNav&oldOrder="+oldreq+"&oldSug="+oldsugg,
        success:function(data){
            var js=$.parseJSON(data);
            if(js.notify == 1){
                $("#btn").click();
            }
            $("[name='show-order[]'] span").html(js.order);
            $("[name='show-sugg[]'] span").html(js.sug) ;  
        },
        error:function(){
            alert("ajax error");
        }
    })


},5000);

最佳答案

您可以在加载页面几秒钟后开始播放音乐

$(window).on( "click", function() { //prevent 'no interact error'
    setTimeout(function() { // start play after 5 sec
        var el = document.getElementById("mainaudio");
        if(el.paused){ //check if music dont play now
            el.play();
        }
        else{
            console.log('already playing!');
        }
    }, 5000);
});

关于jquery - 在没有用户交互的情况下播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60729586/

相关文章:

javascript - 使用 AJAX 在 rails 上加载 CSRF token

ios - 如何暂停自己应用程序中来自另一个应用程序的音乐?

ios - 使用音频录制的URL连续播放音频文件

ios - 使用 AudioServicesPlaySystemSound 一次播放 1 个声音

java - 用于执行 Java-jQuery 对象远程处理的库或组件?

javascript - jQuery 的 val() 在 bootstrap popover 输入字段上返回空字符串

ASP.NET 和 Ajax : query string parameters using ISO-8859-1 encoding

Jquery/CSS 重置样式

javascript - 如何保留数组的重复项

jquery - 错误: jQuery . ..未被调用——Ajax从Node.js跨域服务器请求geoJSON