基于JS開發(fā)微信網(wǎng)頁錄音功能的實例代碼
更新時間:2019年04月30日 09:54:25 作者:JJLin
這篇文章主要介紹了基于JS開發(fā)微信網(wǎng)頁錄音功能的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
具體代碼如下所示:
wx.ready(function () { var startRecordflag = false var startTime = null //btnRecord 為錄音按鈕dom對象 btnRecord.addEventListener('touchstart', function (event) { event.preventDefault(); startTime = newDate().getTime(); // 延時后錄音,避免誤操作 recordTimer = setTimeout(function () { wx.startRecord({ success: function () { var rainAllowRecord = sessionStorage.getItem("rainAllowRecord");//判斷是否授權(quán)過允許使用錄音功能 if (!isEmpty(rainAllowRecord) && rainAllowRecord == "1") { //開始錄音時的操作 如修改錄音按鈕樣式等 } else { //一般第一次時 都沒有授權(quán) 彈出授權(quán)窗口后 無法終止錄音過程 所以在這里設(shè)置rainAllowRecord 的值表示允許過錄音 并且在第一次時主動停止錄音 sessionStorage.setItem("rainAllowRecord", "1"); wx.stopRecord(); } startRecordflag = true; }, cancel: function () { startRecordflag = true; alert('用戶拒絕授權(quán)錄音'); }, complete: function () { startRecordflag = true; } }); }, 300); }); btnRecord.addEventListener('touchend', function (event) { event.preventDefault(); // 間隔太短 var timeDitance = newDate().getTime() - startTime; if (timeDitance < 300) { startTime = 0; // 不錄音 clearTimeout(recordTimer); } else { // 松手結(jié)束錄音 //startRecordflag 因為startRecord是個異步方法 防止沒有進入startRecord 的回調(diào)就進入了這里 var startRecordHandle = setInterval(function () { //startRecordflag為true 表示已經(jīng)進入過startRecord的回調(diào) if (startRecordflag) { startRecordflag = false; clearInterval(startRecordHandle); wx.stopRecord({ success: function (res) { voice.localId = res.localId; translateVoice(); }, fail: function (res) { } }); } }, 0); } }); wx.onVoiceRecordEnd({ complete: function (res) { voice.localId = res.localId; alert('錄音時間已超過一分鐘'); } }); function translateVoice() { //調(diào)用微信的語音轉(zhuǎn)文字接口 wx.translateVoice({ localId: voice.localId, isShowProgressTips: 0, complete: function (res) { if (res.hasOwnProperty('translateResult')) { alert('識別結(jié)果:' + res.translateResult); } else { } } }); } function playVoice() { wx.playVoice({ localId: voice.localId }); } })
總結(jié)
以上所述是小編給大家介紹的基于JS開發(fā)微信網(wǎng)頁錄音功能的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
關(guān)于封裝axios網(wǎng)絡(luò)請求降低代碼耦合度詳解
在項目中直接使用Axios或其他第三方庫來發(fā)送網(wǎng)絡(luò)請求獲取數(shù)據(jù)時,會導(dǎo)致代碼與網(wǎng)絡(luò)請求的邏輯耦合度過高,導(dǎo)致難以維護,所以本文將講解如何將網(wǎng)路請求的代碼進行封裝來進行解耦操作,文中通過代碼示例和圖文講解的非常詳細,需要的朋友可以參考下2024-05-05兩個JavaScript中的特殊值null和undefined詳解
Null和Undefined是JavaScript中非?;A(chǔ)和重要的概念,理解它們的含義、特點和使用方式對于避免出現(xiàn)錯誤和編寫健壯的應(yīng)用程序非常重要,這篇文章主要介紹了兩個JavaScript中的特殊值null和undefined詳解,需要的朋友可以參考下2023-06-06