zoukankan      html  css  js  c++  java
  • 语音循环播放测试demo

    <!DOCTYPE HTML>
    <html>
    <head>
      <title>测试</title>
      <script src="https://cdn.bootcss.com/jquery/1.12.3/jquery.min.js"></script>
      
    </head>
    <body>
    <input id="word" type="text" value="呼叫">
    <button onclick="addList()">add</button>
    
    <audio id="player">
    </audio>
    
    </body>
    </html>
    <script>
    var list = [];
    var tempPlayIdx = 0;
    var isPlaying = false;
    var playUrl = "http://218.75.108.158/tts/webtts.aspx"
    
    $(document).on('click','.voice', function() {
        $(this).addClass('voice1');
        $("#player").bind('ended',function () {
            isPlaying = false;
        });
    });
    
    
    function addList() {
        var text = $("#word").val();
        list.push({"text":text});
    }
    
    function start() {
        window.setInterval(playNext,1000);
    }
    
    
    function playNext() {
        if(tempPlayIdx < list.length && !isPlaying){
          isPlaying = true;
          var tmpPlayText = list[tempPlayIdx].text;
          tempPlayIdx++;
          playSound(tmpPlayText);
        }
    }
    
    
    function playSound(text) {
      $("#player").attr("src", playUrl +"?text=" + text);
      $("#player").attr("autoplay", "autoplay");
      //$("#player").attr("controls", "controls");
      var aud = document.getElementById("player");
      aud.onended = function() {
          isPlaying = false;
      };
    }
    start();
    </script>

    在项目中用websocket来发送数据 在onmessage里获取数据

    //全局变量
    var arrayObj = new Array();
    ws.onmessage = function(evnt) {
            var a=    JSON.parse(evnt.data);
            //语音播报
            if(av !=null){
            person=new Object();
            person.avName=av;
            person.avStat=0;
            arrayObj.push(person);
            console.log(arrayObj);
                
        }
    }  
    function start() {
        window.setInterval(videLoad,1000);
    }
    function videLoad(){
            
         var playUrl = "http://218.75.108.158/tts/webtts.aspx?text=";
         var ordernum=0;
         if(arrayObj.length!=0){
         for (var i = 0; i < arrayObj.length; i++) {
             ordernum =i;
             if(arrayObj[i].avStat==1){
                 break;
             }
             if(arrayObj[i].avStat==2){
                 continue;
             }
             if(arrayObj[i].avStat==0){
                 var src= playUrl+arrayObj[i].avName;
                   $("#player").attr("src",src);
                 //  $("#player").attr("autoplay", "autoplay");
                 // $("#player").attr("controls", "controls");
                  var aud = document.getElementById("player");
                   arrayObj[ordernum].avStat=1;
             }
         }
    }    
         //播放中
         $("#player").bind('ended',function () {
            arrayObj[ordernum].avStat=2;
        });    
    
    }
    start();
  • 相关阅读:
    整数的二进制表示中1的个数
    最长公共子序列
    关于使浏览器崩溃的代码尝试
    wp7 独立存储
    动态引用样式表
    锋利的jQuery小记……
    DataGridVidw添加CheckBox。并通过一个 CheckBox来控制其全选。
    全选按钮的使用。winfrom程序中,对全选按钮的理解,欢迎拍砖!
    Ul li 超出文本显示省略号JS右键控制 本人QQ:267307031 空间更多技术咨询
    FileUpload控件
  • 原文地址:https://www.cnblogs.com/fanting/p/10077221.html
Copyright © 2011-2022 走看看