(编辑:jimmy 日期: 2024/11/18 浏览:2)
具体代码如下所示:
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");//判断是否授权过允许使用录音功能 if (!isEmpty(rainAllowRecord) && rainAllowRecord == "1") { //开始录音时的操作 如修改录音按钮样式等 } else { //一般第一次时 都没有授权 弹出授权窗口后 无法终止录音过程 所以在这里设置rainAllowRecord 的值表示允许过录音 并且在第一次时主动停止录音 sessionStorage.setItem("rainAllowRecord", "1"); wx.stopRecord(); } startRecordflag = true; }, cancel: function () { startRecordflag = true; alert('用户拒绝授权录音'); }, 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 { // 松手结束录音 //startRecordflag 因为startRecord是个异步方法 防止没有进入startRecord 的回调就进入了这里 var startRecordHandle = setInterval(function () { //startRecordflag为true 表示已经进入过startRecord的回调 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() { //调用微信的语音转文字接口 wx.translateVoice({ localId: voice.localId, isShowProgressTips: 0, complete: function (res) { if (res.hasOwnProperty('translateResult')) { alert('识别结果:' + res.translateResult); } else { } } }); } function playVoice() { wx.playVoice({ localId: voice.localId }); } })
总结
以上所述是小编给大家介绍的基于JS开发微信网页录音功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!