溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

html5怎么實(shí)現(xiàn)發(fā)送語音消息

發(fā)布時(shí)間:2022-03-24 15:34:37 來源:億速云 閱讀:723 作者:iii 欄目:云計(jì)算

今天小編給大家分享一下html5怎么實(shí)現(xiàn)發(fā)送語音消息的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

實(shí)現(xiàn)思路

1、使用 getUserMedia 需要考慮各個(gè)瀏覽器的差異

2、使用 WebWorker 來處理錄音及音頻轉(zhuǎn)換。

3、轉(zhuǎn)為 Base64 格式的 WAV,用于瀏覽器播放(此處需要注意,可以轉(zhuǎn)換 Blob 直接播放,此處為了說明轉(zhuǎn)換音頻的接口,所以轉(zhuǎn)為 Baes64)。

具體實(shí)現(xiàn)

1、開始錄音:RongRecorder.record();

  調(diào)用此方法開始錄音。

2、停止錄音:RongRecorder.stop();

  調(diào)用此方法停止錄音。

3、停止并導(dǎo)出:RongRecorder.stopAndExport(type,callback);

  調(diào)用此方法停止并導(dǎo)出音頻為指定的 type 類型

4、導(dǎo)出:RongRecorder.exportRecord(type);

  導(dǎo)出指定 type 類型的音頻流。

5、清空本地音頻流:RongRecorder.clear();

演示

1、兼容 getUserMedia 代碼片段

navigator.getUserMedia = navigator.getUserMedia ||navigator.webkitGetUserMedia ||navigator.mozGetUserMedia; 2、WebWorker 代碼片段

this.onmessage = function(e){  switch(e.data.command){    case 'init':      init(e.data.config);      break;    case 'record':      record(e.data.buffer);      break;    case 'exportRecord':      exportRecord(e.data.type);      break;    case 'clearRecord':      clearRecord();      break;  }};function init(config){  sampleRate = config.sampleRate;}function clearRecord(){  recBuffersL.length = 0;  recLength = 0;}function record(inputBuffer){  recBuffersL.push(inputBuffer[0]);  //recBuffersR.push(inputBuffer[1]);  recLength += inputBuffer[0].length;}function exportRecord(type){  var bufferL = mergeBuffers(recBuffersL, recLength);  var interleaved = interleave(bufferL);  var dataview = encodeWAV(interleaved);  var audioBlob = new Blob([dataview], { type: type });  this.postMessage(audioBlob);}

以上就是“html5怎么實(shí)現(xiàn)發(fā)送語音消息”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI