您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用小程序如何實現錄音功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
首先判斷權限
getPermission: function() { var that = this; wx.getSetting({ success(res) { console.log(res.authSetting) if (res.authSetting["scope.record"] === false) { wx.showModal({ title: '是否錄音', content: '是否錄音', success: function (tip) { if (tip.confirm) { wx.openSetting({ success: function (data) { if (data.authSetting["scope.record"] === true) { wx.showToast({ title: '授權成功', icon: 'success', duration: 1000 }) that.startLuYin() //授權成功之后,再調用chooseLocation選擇地方 } else { wx.showToast({ title: '授權失敗', icon: 'success', duration: 1000 }) } } }) } } }) }else{ that.startLuYin() } } }) },
授權成功后開始錄音
startLuYin(){ const options = { duration: 10000 * 6 * 10, //指定錄音的時長,單位 ms sampleRate: 16000, //采樣率 numberOfChannels: 1, //錄音通道數 encodeBitRate: 96000, //編碼碼率 format: 'mp3', //音頻格式,有效值 aac/mp3 frameSize: 50, //指定幀大小,單位 KB } //開始錄音 recorderManager.start(options); recorderManager.onStart(() => { console.log('recorder start'); Countdown(this); //開始計時 }); //錯誤回調 recorderManager.onError((res) => { console.log('recorder出錯:' + res); console.log(res); clearTimeout(timer); //出錯時停止計時 }) },
暫停錄音
// 暫停錄音 pause: function() { var that = this; recorderManager.pause() recorderManager.onPause((res) => { console.log(res) console.log('暫停錄音') clearTimeout(timer); }) },
繼續錄音
//繼續錄音 jixu: function() { var that = this; recorderManager.resume() Countdown(that); //開始計時 recorderManager.onResume((res) => { }) },
停止錄音
//停止錄音 stop: function() { recorderManager.stop(); recorderManager.onStop((res) => { this.tempFilePath = res.tempFilePath; console.log('停止錄音', res.tempFilePath) clearTimeout(timer); }) },
播放聲音
//播放聲音 play: function() { innerAudioContext.autoplay = true innerAudioContext.src = this.tempFilePath, innerAudioContext.onPlay(() => { console.log('開始播放') }) innerAudioContext.onError((res) => { console.log(res.errMsg) console.log(res.errCode) }) },
// 倒計時 function Countdown(that) { timer = setTimeout(function() { console.log("----secondes----" + formatSeconds(secondes)); secondes++; if (secondes >= 600) { recorderManager.stop(); clearTimeout(timer); } that.setData({ times: formatSeconds(secondes) }); Countdown(that); }, 1000); };
// 時間展示 function formatSeconds(value) { var secondTime = parseInt(value); // 秒 var minuteTime = 0; // 分 var hourTime = 0; // 小時 if (secondTime > 60) { //如果秒數大于60,將秒數轉換成整數 //獲取分鐘,除以60取整數,得到整數分鐘 minuteTime = parseInt(secondTime / 60); //獲取秒數,秒數取佘,得到整數秒數 secondTime = parseInt(secondTime % 60); //如果分鐘大于60,將分鐘轉換成小時 if (minuteTime > 60) { //獲取小時,獲取分鐘除以60,得到整數小時 hourTime = parseInt(minuteTime / 60); //獲取小時后取佘的分,獲取分鐘除以60取佘的分 minuteTime = parseInt(minuteTime % 60); } } var result; //時間的展示方式為00:00 if (secondTime < 10) { result = "0" + parseInt(secondTime); } else { result = "" + parseInt(secondTime); } if (minuteTime > 0) { if (minuteTime < 10) { result = "0" + parseInt(minuteTime) + ":" + result; } else { result = "" + parseInt(minuteTime) + ":" + result; } } else { result = "00:" + result; } //由于限制時長最多為三分鐘,小時用不到 if (hourTime > 0) { result = "" + parseInt(hourTime) + ":" + result; } return result; }
看完上述內容,你們對使用小程序如何實現錄音功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。