国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

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

2024-08-26 00:21:26
字體:
來源:轉載
供稿:網友

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

本文記錄的是在網頁上用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

在線測試: 點此測試

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拿來就能用,具體使用哪個請參考下表:

 

支持 Recorder RecordApp
PC瀏覽器
Android瀏覽器
Android微信(含小程序)
Android Hybrid App
IOS Safari
IOS微信(含小程序)  
IOS Hybrid App  
IOS其他瀏覽器    
開發難度 簡單 復雜
第三方依賴 依賴微信公眾號

 

* 可到github中查閱RecordApp源碼,在目錄xiangyuecn/Recorder/app-support-sample中。

HTML5,網頁錄音,上傳,IOS,微信

以上所述是小編給大家介紹的HTML5網頁錄音和上傳到服務器支持PC、Android,支持IOS微信功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 施秉县| 隆子县| 云安县| 综艺| 昔阳县| 海原县| 广南县| 晋城| 托克逊县| 三河市| 卢龙县| 华容县| 抚远县| 丰原市| 葫芦岛市| 罗平县| 辉县市| 乌鲁木齐市| 陆川县| 玛多县| 江陵县| 集安市| 大同县| 拉孜县| 团风县| 金塔县| 淮阳县| 兴仁县| 姜堰市| 额济纳旗| 翁源县| 内乡县| 高碑店市| 伊宁市| 汽车| 密山市| 湖南省| 桐梓县| 双鸭山市| 琼海市| 潮安县|