小程序?qū)崿F(xiàn)錄音功能
更新時(shí)間:2020年09月22日 08:39:37 作者:一心只想
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)錄音功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了小程序?qū)崿F(xiàn)錄音功能的具體代碼,供大家參考,具體內(nèi)容如下
首先判斷權(quán)限
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: '授權(quán)成功',
icon: 'success',
duration: 1000
})
that.startLuYin()
//授權(quán)成功之后,再調(diào)用chooseLocation選擇地方
} else {
wx.showToast({
title: '授權(quán)失敗',
icon: 'success',
duration: 1000
})
}
}
})
}
}
})
}else{
that.startLuYin()
}
}
})
},
授權(quán)成功后開始錄音
startLuYin(){
const options = {
duration: 10000 * 6 * 10, //指定錄音的時(shí)長,單位 ms
sampleRate: 16000, //采樣率
numberOfChannels: 1, //錄音通道數(shù)
encodeBitRate: 96000, //編碼碼率
format: 'mp3', //音頻格式,有效值 aac/mp3
frameSize: 50, //指定幀大小,單位 KB
}
//開始錄音
recorderManager.start(options);
recorderManager.onStart(() => {
console.log('recorder start');
Countdown(this); //開始計(jì)時(shí)
});
//錯(cuò)誤回調(diào)
recorderManager.onError((res) => {
console.log('recorder出錯(cuò):' + res);
console.log(res);
clearTimeout(timer); //出錯(cuò)時(shí)停止計(jì)時(shí)
})
},
暫停錄音
// 暫停錄音
pause: function() {
var that = this;
recorderManager.pause()
recorderManager.onPause((res) => {
console.log(res)
console.log('暫停錄音')
clearTimeout(timer);
})
},
繼續(xù)錄音
//繼續(xù)錄音
jixu: function() {
var that = this;
recorderManager.resume()
Countdown(that); //開始計(jì)時(shí)
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)
})
},
// 倒計(jì)時(shí)
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);
};
// 時(shí)間展示
function formatSeconds(value) {
var secondTime = parseInt(value); // 秒
var minuteTime = 0; // 分
var hourTime = 0; // 小時(shí)
if (secondTime > 60) { //如果秒數(shù)大于60,將秒數(shù)轉(zhuǎn)換成整數(shù)
//獲取分鐘,除以60取整數(shù),得到整數(shù)分鐘
minuteTime = parseInt(secondTime / 60);
//獲取秒數(shù),秒數(shù)取佘,得到整數(shù)秒數(shù)
secondTime = parseInt(secondTime % 60);
//如果分鐘大于60,將分鐘轉(zhuǎn)換成小時(shí)
if (minuteTime > 60) {
//獲取小時(shí),獲取分鐘除以60,得到整數(shù)小時(shí)
hourTime = parseInt(minuteTime / 60);
//獲取小時(shí)后取佘的分,獲取分鐘除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result;
//時(shí)間的展示方式為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;
}
//由于限制時(shí)長最多為三分鐘,小時(shí)用不到
if (hourTime > 0) {
result = "" + parseInt(hourTime) + ":" + result;
}
return result;
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 微信小程序錄音實(shí)現(xiàn)功能并上傳(使用node解析接收)
- 微信小程序?qū)崿F(xiàn)錄音功能
- 小程序?qū)崿F(xiàn)按下錄音松開識(shí)別語音
- 小程序采集錄音并上傳到后臺(tái)
- 小程序?qū)崿F(xiàn)錄音上傳功能
- 微信小程序?qū)崿F(xiàn)錄音時(shí)的麥克風(fēng)動(dòng)畫效果實(shí)例
- 微信小程序錄音與播放錄音功能
- 微信小程序開發(fā)之錄音機(jī) 音頻播放 動(dòng)畫實(shí)例 (真機(jī)可用)
- 微信小程序-圖片、錄音、音頻播放、音樂播放、視頻、文件代碼實(shí)例
- 小程序錄音功能實(shí)現(xiàn)
相關(guān)文章
JavaScript中檢測數(shù)組的3種方法小結(jié)
數(shù)組檢測是指在編程中對(duì)數(shù)組進(jìn)行驗(yàn)證和檢查的過程,本文主要介紹了JavaScript中檢測數(shù)組的3種方法小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
js Canvas實(shí)現(xiàn)圓形時(shí)鐘教程
這篇文章主要為大家詳細(xì)介紹了HTML5 Canvas實(shí)現(xiàn)圓形時(shí)鐘簡易教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
用js的document.write輸出的廣告無阻塞加載的方法
這篇文章主要介紹了用js的document.write輸出的廣告無阻塞加載的方法,需要的朋友可以參考下2014-06-06
Canvas中繪制Geojson數(shù)據(jù)示例詳解
這篇文章主要為大家介紹了Canvas中繪制Geojson數(shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
ionic開發(fā)中點(diǎn)擊input時(shí)鍵盤自動(dòng)彈出
ionic開發(fā)移動(dòng)端界面時(shí),在輸入用戶名和密碼的時(shí)候,輸入法不要擋住我的輸入框,并且輸入框往上滾動(dòng)的時(shí)候,頂部標(biāo)題不要上移,下面給大家分享實(shí)現(xiàn)代碼,一起看看吧2016-12-12

