html页面播放提示音、声音
最近在写在线客服功能,想实现一个有消息时用户那边提醒声音的需求,也就是在网页中播放声音。经过多次的百度和思考,最后实现了需求,一起来看一下吧!
在最新版的Chrome浏览器(以及所有以Chromium为内核的浏览器)中,已不再允许自动播放音频和视频。(Google的某些做法还真是令开发者不爽)。就算你为video或audio标签设置了autoplay属性也一样不能自动播放。
一、实现代码,方法一
逻辑:
1、输入文字内容
2、点击发送按钮或回车发送
3、ajax携带参数发送请求
4、socket推送消息
5、展现消息数据
6、播放声音
先上解决方案:
var obj = $("<audio id='play' src='/music/1.mp3' autoplay></audio>"); $('audio').remove(); $('body').append(obj);
将字符串放入变量中,然后执行变量的方式去实现的,这里做了一个每次执行都会清除往期音频的操作,避免出现同时播放多个音频。
附赠暂停播放功能
html <button id="stop" class="layui-btn css-push layui-btn-danger">暂停</button> JS $("#stop").click(function (){ var myAuto = document.getElementById('play') if (myAuto !== null) { if (myAuto.paused) { myAuto.play(); $("#stop").html("暂停"); }else{ myAuto.pause(); $("#stop").html("开始"); } } return false; })
二、方法二
HTML <audio id="audioContent" autoplay="autoplay"> <source id="audioSource" src="" type="audio/mpeg"> <embed src="" type="audio/mpeg" id="audioEmbed"> </audio>
JS var audio = document.getElementById('audio'); audio.removeChild(ttsAudio); audio.innerHTML = '<audio id="audioContent" autoplay="autoplay"><source id="audioSource" src="./mp3/1.mp3" type="audio/mpeg"><embed id="audioEmbed" src=""></audio>'; var c = document.getElementById("audioContent"); c.play();