浏览器限制html5 audio.play()自动播放的问题

项目前景

实现一个消息即时通讯的功能,后台通过websocket发消息给前端,前端获取到新消息后,使用audio.play()播放叮咚声音 . 代码如下:

         var audio = document.createElement("audio"); // 创建播放标签

         audio.src = newsAudio

        function play() {

               audio.play()

        }

 

遇到的问题

问题来了,由于浏览器限制音频自动播放,直接调用此方法会报错。报错信息如下:

NotAllowedError: play() failed because the user didn't interact with the document first

 

解决方法

在进入页面时,先弹出提示窗让用户确认是否播放声音,用户点击页面让浏览器发出第一个叮咚声音后【因为浏览器规定必须要用户主动触发事件!】,后续再调用play()方法调用声音就能正常运行了!!!

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在HTML5中添加背景音乐并实现自动播放在各个浏览器上,可以使用`<audio>`标签和JavaScript。 首先,将音频文件(如MP3或WAV)放在你的项目文件夹中。 然后,在HTML文档的适当位置插入以下代码: ```html <audio id="bgMusic" autoplay loop> <source src="path/to/your/audio/file.mp3" type="audio/mpeg"> <source src="path/to/your/audio/file.wav" type="audio/wav"> Your browser does not support the audio tag. </audio> ``` 在这段代码中,`<audio>`标签用于定义音频元素。`autoplay`属性指定音频在加载完成后自动播放。`loop`属性表示音频将循环播放。 然后,使用`<source>`标签指定音频文件的路径和类型。根据浏览器的支持情况,浏览器将选择合适的音频格式进行播放。如果浏览器不支持`<audio>`标签,则显示"Your browser does not support the audio tag."。 最后,使用JavaScript在页面加载时控制音频的播放: ```javascript window.addEventListener('load', function() { var audio = document.getElementById('bgMusic'); audio.play(); }); ``` 这段代码会等待页面加载完成后,获取`<audio>`元素并调用其`play()`方法来开始播放音频。 请注意,由于浏览器自动播放限制,某些浏览器(如Chrome)可能需要用户与页面进行交互后才能自动播放音频。如果自动播放不起作用,你可以添加一个按钮,让用户手动触发音频的播放。 希望这可以帮助到你!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值