wx.ready(function () {
var voice = {
localId: '',
serverId: '',
}var startRecordflag = falsevar 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});}})
如果觉得《微信网页录音功能》对你有帮助,请点赞、收藏,并留下你的观点哦!