首页 > 其他分享 >h5 audio播放声音

h5 audio播放声音

时间:2023-06-03 11:22:29浏览次数:47  
标签:function arr audio buffer play h5 splice var 播放

h5 audio播放声音

http://www.niunan.net/test_audio.html

 

<!DOCTYPE html>
<html>
<head>

  <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta charset="utf-8" />
    <title>测试播放声音</title>
</head>
<body>
    <div>
    序号:<input id="xuhao" type="number" value="22" />
</div>
<div>
    诊室:
    <label>
        <input type="radio" name="rad" value="沉香诊室" checked="checked" />
        沉香诊室
    </label>
    <label>
        <input type="radio" name="rad" value="関元诊室" />
        関元诊室
    </label>
    <label>
        <input type="radio" name="rad" value="合香诊室" />
        合香诊室
    </label>
</div>
    <button id="btn1">测试语音</button>
    <audio id="audio1" src="music/请.mp3" controls="controls" hidden="hidden"></audio>
    <audio id="audio2" src="" controls="controls" hidden="hidden"></audio>
    <audio id="audio3" src="music/号到.mp3" controls="controls" hidden="hidden"></audio>
    <audio id="audio4" src="" controls="controls" hidden="hidden"></audio>
    <audio id="audio5" src="music/就诊.mp3" controls="controls" hidden="hidden"></audio>
    <hr />
    <div id="mes"></div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <script>
        var aud1 = document.getElementById("audio1");
        var aud2 = document.getElementById("audio2");
        var aud3 = document.getElementById("audio3");
        var aud4 = document.getElementById("audio4");
        var aud5 = document.getElementById("audio5");
        var onoff = false; //序号没有播放完则不放“号到”的声音
        var i = 0; //播放序号,从第0位开始放
        var timer;

        $(function () {
            $('#btn1').click(function () {
                var no = $('#xuhao').val();
                var zhenshi = $('input[name=rad]:checked').val();
                $('#audio4').attr("src","music/"+zhenshi+".mp3")
                $('#mes').html("请" + no + "号到" + zhenshi + "就诊")
                bofang();
            })
        })

        //播放声音
        function bofang() {
            aud1.play(); //读“请”
            aud1.addEventListener('ended', function () {
                //读序号
                playlist();
            });
            aud2.addEventListener('ended', function () {
                if (onoff) {
                    aud3.play();
                }
            });

            aud3.addEventListener('ended', function () {
                aud4.play();
            });

            aud4.addEventListener('ended', function () {
                aud5.play();
            });

            aud5.addEventListener('ended', function () {
                onoff = false;
                i = 0;
                mainonoff = true;
                $("#callTips").hide();
            });
        }

        function playlist() {
            var number = $('#xuhao').val();  //序号
            var arr = number.split("");   //序号分隔成了单个数字,
            var buffer = new Array();
            switch (arr.length) {
                case 1: buffer = arr; break;
                case 2:
                    buffer[0] = arr[0]; buffer[1] = "十"; buffer[2] = arr[1];
                    if (arr[0] == "1") {
                        buffer[0] = "十";
                        buffer[1] = arr[1];
                        buffer.splice(2, 1);
                    }
                    if (arr[1] == "0") {
                        buffer.splice(2, 1)
                        if (arr[0] == "1") {
                            buffer[0] = "十";
                            buffer.splice(1, 1);
                        }
                    }
                    break;
                case 3:
                    buffer[0] = arr[0]; buffer[1] = "百"; buffer[2] = arr[1]; buffer[3] = "十"; buffer[4] = arr[2];
                    if (arr[2] == "0") {
                        buffer.splice(4, 1);
                        if (arr[1] == "0") {
                            buffer.splice(2, 2);
                        }
                    } else if (arr[1] == "0") {
                        buffer.splice(3, 1);
                    }
                    break;
                case 4:
                    buffer[0] = arr[0]; buffer[1] = "千"; buffer[2] = arr[1]; buffer[3] = "百"; buffer[4] = arr[2]; buffer[5] = "十"; buffer[6] = arr[3];
                    if (arr[3] == "0") {
                        buffer.splice(6, 1);
                        if (arr[2] == "0") {
                            buffer.splice(5, 1);
                        }
                        if (arr[2] == "0" && arr[3] == "0") {
                            buffer.splice(4, 1);
                        }
                        if (arr[1] == "0") {
                            buffer.splice(3, 1);
                        }
                        if (arr[1] == "0" && arr[2] == "0" && arr[3] == "0") { buffer.splice(2, 1); }
                    } else if (arr[2] == "0") {
                        buffer.splice(5, 1);
                        if (arr[1] == "0") {
                            buffer.splice(2, 2);
                        }
                    } else if (arr[1] == "0") {
                        buffer.splice(3, 1);
                    }
                    break;
                //case 5: buffer[0] = arr[0]; buffer[1] = "万";buffer[2] = arr[1]; buffer[3] = "千"; buffer[4] = arr[2]; buffer[5] = "百"; buffer[6] = arr[3]; buffer[7] = "十"; buffer[8] = arr[4]; break;break;
                default: alert("序号过大!"); return;
            }
            clearInterval(timer);
            timer = setInterval(function () { playNumber(buffer); }, 500);  //开始播放序号
        }

        function playNumber(arr) {
            if (i > arr.length - 1) {
                clearInterval(timer);  //停止播放序号
                onoff = true;  //打开下一个播放开关
                aud3.play();
                return;
            }
            eval('play("' + arr[i] + '")');
            i++;
        }

        //播放指定音频 
        function play(str) {
            aud2.src = "music/" + str + ".mp3";
            aud2.load();
            aud2.play();
        }
    </script>
</body>

</html>

 

标签:function,arr,audio,buffer,play,h5,splice,var,播放
From: https://www.cnblogs.com/niunan/p/17453684.html

相关文章

  • AI视频融合平台EasyCVR接入国标GB28181设备,视频无法播放是什么原因?
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。有用户反馈,将设备通过国标GB28181协议接入EasyCVR......
  • ios h5 input框自动填充会有黄色背景块
    iosh5input框自动填充会有黄色背景块(比如验证码发过来可以自动填充的时候)取消黄色块input:-webkit-autofill,  input:-webkit-autofill:hover,  input:-webkit-autofill:focus,  input:-webkit-autofill:active{    -webkit-transition-delay:99999......
  • 树莓派之OLED12864视频播放—BadApple
    概述本篇教程讲述了使用树莓派驱动OLED12864液晶屏,并在液晶屏上播放动画和视频.硬件平台树莓派一台—RaspberryPi_2B。OLED12864显示屏一块,SPI接口。软件平台wiringPi—开源树莓派GPIO库。EasyBMP—开源BMP图片处理库(这个库是用C++编写的,主要为了方便提取BMP图片数据,我已经做好了......
  • python安装pyaudio
    python安装pyaudio1.环境python>=3.72.安装直接用pip安装会报错error:command'C:\\ProgramFiles(x86)\\MicrosoftVisualStudio14.0\\VC\\BIN\\x86_amd64\\cl.exe'failedwithexitcode2---到https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio......
  • uniapp h5+ 拍照、录音功能实现
    uniapph5+拍照、录音功能实现uniapp功能实现提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录uniapph5+拍照、录音功能实现前言一、拍照1.调取摄像头拍摄照片2.管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能GalleryOptio......
  • ROS2-Beginner:10-记录和播放数据
    目标:记录发布到话题上的数据,可以任何时候回放和检查。背景ros2-bag是一个命令行工具,用于记录系统中主题发布的数据。它累积在任意数量的主题上传递的数据,并将其保存在数据库中。然后,您可以回放数据以重现测试和实验的结果。录制主题也是分享你的作品并允许他人重新创作的好方法......
  • 根据视频帧率,使用requestAnimationFrame播放动画
    当时使用webRTC进行视频通话时,通常会设置视频流的帧率,行业内一般默认帧数为15或者30,一般每秒只需要渲染15或30次当要需要对本地视频或者远端视频流进行特殊处理时,通常会使用requestAnimationFrame方法进行再次渲染requestAnimationFrame,这个方法是用来在页面重绘之前,通知浏览器......
  • 谷歌浏览器在用户与Document无交互时无法播放声音问题 - 记录
    谷歌禁止声音播放处理方式1、设置google浏览器,点击地址前面的图标,选择网站设置,找到声音,设置允许,需要用户配合设置2、使用window.AudioContext,需要自己写代码 接口参考地址:https://developer.mozilla.org/zh-CN/docs/Web/API/AudioContext3、使用组件,如:soundman......
  • 2023-05-30 前端h5页面如何实现调起微信支付功能(该回答来自chatgpt,实际效果未测试)
    前端H5页面调起微信支付功能需要结合微信JS-SDK和后端接口实现。以下是基本步骤和示例代码:1.获取微信公众号的appid和secret在微信公众平台上创建一个公众号,获取其对应的appid和secret。2.引入微信JS-SDK将微信JS-SDK的链接放入HTML文件的头部,例如:<scriptsrc="https://res.......
  • JS判断视频Video的播放、暂停、结束完成及获取长度事件监听处理
    在日常应用场景中,可能会遇到这么一个情况,需要判断用户是否完整的观看完了一部视频,在这个场景中,和视频相关的事件大体涉及到几个部分,获取视频长度,视频开始播放,暂停播放和播放结束,下面来看下如何通过JavaScript来监听获取视频的这几种状态。(1)html页面视频标签大体如下<videoid="v......