小小幸运星 發表於 2019-11-16 17:28:00

HTML5微信jssdk录音播放语音的方法

<p>HTML5微信jssdk录音播放语音的方法<br>需要注意的2个问题<br>1 就是一定要判断1秒内 录音都不算 ps:太短不能录音 <br>2 录音超过1分钟 会发现正在录音突然消失 所以要写wx.onVoiceRecordEnd 这个是是1分钟会自动出发 然后写上传数据ps这个必须要写在wx.startRecord里面 不然不触发!!!切记</p>
<p>前端代码如下<br>&lt;pre&gt;<br>var START;<br> $('.luyin').on('touchstart',function () {<br>new Date().getTime();<br>      wx.startRecord({<br>            success: function(){<br>                START = new Date().getTime();<br>                wx.onVoiceRecordEnd({<br>                  // 录音时间超过一分钟没有停止的时候会执行 complete 回调<br>                  complete: function (res) {<br>                        alert('最多只能录制一分钟');<br>                        var localId = res.localId;<br>                        uploadluyin(localId,60000);<br>                  }<br>                });<br>            },<br>            cancel: function () {<br>                alert('用户拒绝授权录音');<br>                return false;<br>            }<br>      });</p>
<p>    })<br>    $('.luyin').on('touchend',function () {<br>      var END = new Date().getTime();<br>      //录音时间<br>      var luyintime=END - START;<br>      if(luyintime &lt; 2000){<br>            END = 0;<br>            START = 0;<br>            wx.stopRecord({});<br>            alert('录音时间不能少于2秒');<br>            return false;<br>      }else {</p>
<p><br>            wx.stopRecord({<br>                success: function (res) {<br>                  var localId = res.localId;</p>
<p>                  uploadluyin(localId,luyintime);</p>
<p>                }<br>            });<br>      }<br>    })<br>    <br>    function uploadluyin(localId,luyintime) {<br>      wx.uploadVoice({<br>            localId: localId, // 需要上传的音频的本地ID,由stopRecord接口获得<br>            isShowProgressTips: 1, // 默认为1,显示进度提示<br>            success: function (res) {<br>                var serverId = res.serverId; // 返回音频的服务器端ID<br>                console.log(serverId);</p>
<p>                $.post("/home/xishanluyin/scyuyin", {<br>                            "serverId": serverId,<br>                            "luyintime": luyintime<br>                        },<br>                        function (data) {<br>                            if (data.success == 1) {<br>                              alert('录音成功');<br>                            } else {<br>                              alert(data.msg);<br>                            }<br>                        }, "json");<br>            }<br>      })<br>    }<br>&lt;/pre&gt;</p>
<p>后端代码 核心代码如下直接写入amr就行 因为生成的默认都是amr</p>
<p><br>                &lt;pre&gt;<br>$ft = copy("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$accessToken}&amp;media_id={$imgServerId}",<br>                        "{$imgServerId}.mp3");<br>   //转成mp3 注意只有在真机上才可以成功转成mp3 微信web开发者工具生成的amr不能转成mp3的<br> shell_exec('ffmpeg -i _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.amr _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.mp3');</p>
<p>&lt;/pre&gt;<br>ffmpeg 命令需要安装一些软件<br>具体说明请&lt;a href="http://newmiracle.cn/?p=1072"&gt;ffmpeg源码安装教程&lt;/a&gt;<br>转好的mp3拖到浏览器测试下 如果可以 就说明转mp3成功了   </p>
<p>然后返回web路径就OK啦这个audio就可以访问啦</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <div id="AllanboltSignature">
      <p id="PSignature" style="border-top: #e0e0e0 1px dashed; border-right: #e0e0e0 1px dashed; border-bottom: #e0e0e0 1px dashed; border-left: #e0e0e0 1px dashed; padding-top: 10px; padding-right: 20px; padding-bottom: 30px; padding-left: 140px; background: url(&quot;https://images.cnblogs.com/cnblogs_com/newmiracle/1588319/t_191112022504qrcode_for_gh_3b9ed2775d3c_258%20(1).jpg?t=1573527191829&quot;) #e5f1f4 no-repeat 3% 45%; font-family: 微软雅黑; font-size: 12px">
   <br>
如果遇到什么不懂的地方直接关注公众号留言(本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。)
            <br>
            作者:newmiracle
            <br>
            出处:https://www.cnblogs.com/newmiracle/
            <br>
         
      </p>
     </div><br><br>
来源:https://www.cnblogs.com/newmiracle/p/11872579.html
頁: [1]
查看完整版本: HTML5微信jssdk录音播放语音的方法