具体代码如下所示:wx.ready(function(){varstartRecordflag=falsevarstartTime=null //btnRecord为录
具体代码如下所示:
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开发微信网页录音功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
微信网页录音功能 微信录音