html页面播放提示音、声音

发布时间:2021-03-21 18:49:00 浏览量:1274 标签: 声音

最近在写在线客服功能,想实现一个有消息时用户那边提醒声音的需求,也就是在网页中播放声音。经过多次的百度和思考,最后实现了需求,一起来看一下吧!


在最新版的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();




评论
登录后才可以进行评论哦! QQ登录
验证码
评论内容