整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML5網頁錄音和上傳到服務器,支持PC、Android,支持IOS微信

          備做一個網頁版聊天界面,表情啊、圖片啊、上傳文件啊都應該要有,視頻就算了,語音還是要的。

          本文記錄的是在網頁上用GitHub上的Recorder進行在線錄音和上傳到服務器,前幾天升了一下級,以后有時間再專門寫一篇記錄。

          錄音代碼

          本示例代碼支持PC、Android、IOS(僅Safari)中使用,如果用RecordApp可增加對IOS(微信瀏覽器、小程序)的支持。

          看萬遍代碼不如行動一遍,新建一個html文件,把下面三段代碼復制到文件內,雙擊瀏覽器打開就能進行測試。

          <!-- 先加載js錄音庫,注意:你應該把js clone到本地使用 --><meta charset="utf-8" />
          <script src="https://xiangyuecn.github.io/Recorder/recorder.mp3.min.js"></script>
          <input type="button" onclick="startRec()" value="開始錄音">
          <hr>
          <input type="button" onclick="playRec()" value="結束并播放">
          <input type="button" onclick="uploadRec()" value="結束并上傳">
          <script>
          var rec;
          function startRec(){
           rec=Recorder();//使用默認配置,mp3格式
           
           //打開麥克風授權獲得相關資源
           rec.open(function(){
           //開始錄音
           rec.start();
           },function(msg,isUserNotAllow){
           //用戶拒絕了權限或瀏覽器不支持
           alert((isUserNotAllow?"用戶拒絕了權限,":"")+"無法錄音:"+msg);
           });
          };
          </script>
          

          上傳服務器代碼

          <script>
          function uploadRec(){
           //停止錄音,得到了錄音文件blob二進制對象,想干嘛就干嘛
           rec.stop(function(blob,duration){
           /*
           blob文件對象,可以用FileReader讀取出內容
           ,或者用FormData上傳,本例直接上傳二進制文件
           ,對于普通application/x-www-form-urlencoded表單上傳
           ,請參考github里面的例子
           */
           var form=new FormData();
           form.append("upfile",blob,"recorder.mp3"); //和普通form表單并無二致,后端接收到upfile參數的文件,文件名為recorder.mp3
           
           //直接用ajax上傳
           var xhr=new XMLHttpRequest();
           xhr.open("POST","http://baidu.com/修改成你的上傳地址");//這個假地址在控制臺network中能看到請求數據和格式,請求結果無關緊要
           xhr.onreadystatechange=function(){
           if(xhr.readyState==4){
           alert(xhr.status==200?"上傳成功":"測試請先打開瀏覽器控制臺,然后重新錄音,在network選項卡里面就能看到上傳請求數據和格式了");
           }
           }
           xhr.send(form);
           },function(msg){
           alert("錄音失敗:"+msg);
           });
          };</script>
          

          立即播放代碼

          <script>
          function playRec(){
           //停止錄音,得到了錄音文件blob二進制對象,想干嘛就干嘛
           rec.stop(function(blob,duration){
           var audio=document.createElement("audio");
           audio.controls=true;
           document.body.appendChild(audio);
           
           //非常簡單的就能拿到blob音頻url
           audio.src=URL.createObjectURL(blob);
           audio.play();
           },function(msg){
           alert("錄音失敗:"+msg);
           });
          };</script>
          

          Recorder

          GitHub地址:https://github.com/xiangyuecn/Recorder

          在線測試: https://xiangyuecn.github.io/Recorder/

          Recorder用于html5錄音,為一個純粹的js庫,支持大部分已實現getUserMedia的移動端、PC端瀏覽器,包括騰訊Android X5內核(QQ、微信)。

          錄音默認輸出mp3格式,另外可選wav格式(此格式錄音文件超大);有限支持ogg、webm、amr格式;支持任意格式擴展(前提有相應編碼器)。

          小巧:如果對錄音文件大小沒有特別要求,可以僅僅使用錄音核心+wav編碼器,源碼不足300行,壓縮后的recorder.wav.min.js不足4kb。mp3使用lamejs編碼,壓縮后的recorder.mp3.min.js開啟gzip后54kb。

          由于IOS(11.X、12.X)上只有Safari支持getUserMedia,其他瀏覽器均不支持H5錄音,因此額外針對IOS對Recorder進行了進一步的兼容封裝,升級成了RecordApp,用于支持微信(含瀏覽器、小程序web-view),另外RecordApp對Hybrid App也提供了更加優秀的支持。

          由于RecordApp需要微信公眾(訂閱)號提供JsSDK錄音支持,所以開發難度會大些,但支持的環境更多。Recorder拿來就能用,具體使用哪個請參考下表:
          

          最后

          如果這個庫有幫助到您,請 Star 一下。

          原文作者:高堅果兄弟

          原文地址:https://www.cnblogs.com/xiangyuecn/p/10772227.html

          個html5的錄音回放的demo附源碼,真實有效,適合前端二次開發。

          演示地址

          http://www4.qietu.com/test/audio_test/

          地址也許會失效,加微信公眾號qietuwang保險一點

          下載地址

          http://www.qietu.cn/blog-1-132.html

          切圖公司一個項目中碰到一個類似蘋果手機上SIRI 機器人的項目制作,所以首先想到的是html5 有個audio標簽,于是找到了一個有用的demo。

          最后項目順利完成。附demo

          http://developer.qietu.com/html/f3/html5audio/

          ---

          關注我們,我們將附送我們工作中的非常多的實用的demo。

          ad~

          只教web前端實戰的切圖學院(qietu.org)


          主站蜘蛛池模板: 秋霞日韩一区二区三区在线观看 | 四虎在线观看一区二区| 视频一区视频二区在线观看| 国产在线观看一区二区三区精品| 中文字幕一区二区三区精彩视频| 国产精品亚洲一区二区三区 | 在线|一区二区三区| 亚洲AV综合色区无码一区| 国产一区二区三区不卡在线看 | 一区二区视频在线免费观看| 久久精品无码一区二区三区| 国产在线一区视频| 久久99精品一区二区三区| 精品日韩一区二区| 97se色综合一区二区二区| 国产精品亚洲高清一区二区| 免费看无码自慰一区二区| 一区二区三区高清在线| 看电影来5566一区.二区| 日韩熟女精品一区二区三区| 日韩伦理一区二区| 亚洲一区二区三区写真| 久久精品午夜一区二区福利| 国产亚洲一区二区三区在线不卡 | 无码av免费毛片一区二区| 麻豆国产在线不卡一区二区| 伊人色综合视频一区二区三区| 亚洲国产成人久久一区久久| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 国产aⅴ一区二区| 亚洲国产韩国一区二区| 国产在线一区观看| 日本一区二区三区免费高清| 亚洲AV无码一区二区三区DV| 国产在线精品一区二区三区不卡| 一区免费在线观看| 亚洲av高清在线观看一区二区| 日本韩国黄色一区二区三区| 日本精品一区二区三区在线视频| 国产无吗一区二区三区在线欢| 精品一区二区三区在线观看l |