资料补充:
代码如下:
data数据
data:{
playerState: 0, //0-录音 1-播放
voice: "", //录音地址
voiceType: false, //录音切换
beginAndEnd: "请语音录入",}
image.png
image.png
image.png
image.png
开始录音
tape() {
if (this.data.playerState == 0) { //等于0,进行录音功能
//正在录音点击后就结束录音,图标也该为播放图标,功能改为播放
if (this.data.voiceType) {
//结束录音
this.setData({
voiceType: false,
src: '/assets/imgs/player.png'
})
this.end() //调用结束录音的方法
} else {
//开始录音
this.setData({
src: '/assets/imgs/voiceEnd.png',
beginAndEnd: "结束语音录入",
voiceType: true
})
wx.showToast({
title: '正在录音。。。',
icon: 'none',
duration: 60000
})
const options = {
duration: 60000, //祥则录音的时长
sampleRate: 44100, //采样率
numberOfChannels: 1, //录音通道数
encodeBitRate: 192000, //编码码率,有效值见下表格
format: 'wav', //音频格式
frameSize: 50 //指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。
}
wx.getRecorderManager().start(options) //开始录音
var num = 0
this.data.interval = setInterval(() =>{ //限时录音60s
num++
if (num >59) { //到60s调用停止录音方法
this.end()
}
}, 1000)
}
} else { //不等0也就是1,进行播放
if (this.data.voiceType) {
this.setData({
voiceType: false,
src: '/assets/imgs/player.png',
beginAndEnd: "播放录音"
})
innerAudioContext.stop() //停止。停止后的音频再播放会从头开始播放。
} else {
this.setData({
voiceType: true,
src: '/assets/imgs/stop.png',
beginAndEnd: "停止播放"
})
//音频的数据链接,用于直接播放,仅支持绝对路径。
innerAudioContext.src = this.data.voice
innerAudioContext.play() //播放
innerAudioContext.onEnded(() =>{ //监听音频自然播放至结束的事件
innerAudioContext.stop() //停止。
this.setData({
voiceType: false,
src: '/assets/imgs/player.png',
beginAndEnd: "播放录音"
})
})
}
}
},
结束录音
//结束录音
end() {
clearInterval(this.data.interval) //清除定时器
wx.hideToast() //隐藏正则录音的图搏洞标
wx.showToast({
title: '录音结束。。。',
icon: 'none',
duration: 2000
})
this.setData({
beginAndEnd: "播放语音",
playerState: 1,
voiceType: false
})
var that = this
//监听录音结束事件谨银棚
wx.getRecorderManager().onStop(res =>{
console.log(res)
//调用自定义事件,把音频上传并返回音频路径
const {
uploadRecord } = require('../../../http/picture.js')
uploadRecord(res.tempFilePath).then(res =>{
console.log(res)
that.setData({
voice: JSON.parse(res).data,
state: 1
})
})
})
wx.getRecorderManager().stop() //停止录音
},
作者:Flipped_kk
链接:https://www.jianshu.com/p/71f2e94c3334
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果您在使用uniapp小程序打包安卓版本时,发现音频录制过程中无法暂停,可能是因为以下原因:1. 数据类型错误:在录制音频时,可能会存在数据类型错误等问题导致无法暂停。建议检查相应的代码和参数设置,确保数据类型正确。
2. 录音权限问题:在安卓系统中,需要授权应用程序才能访问麦克风等携闹者音频输入设备。如果您的应用程序没有获得相应的权限,可能会导致录制过程中无法暂停。可以在系统设置中检查应用程序的权限设置,确保应用程序具有音频录制权限。
3. 代码逻辑问题:如果您的代码逻辑存在问题,也可能会导致音频录制过程中无法暂停。建议检查相应的代码逻辑辩薯,确保在录制音频时能够正确实现暂停功能。
如果仍然无法解决问题,建议您查阅uniapp和相关插件弯老的官方文档,或联系uniapp的技术支持人员,获取更详细的解决方案和帮助。
平板电脑小程序不能录音是因为没有授权使用录音功能。渣燃氏1、打开“安全中心”。
2、选择“授权管理”。
3、点击“应用权限管理”。
4、点击“权限管理”即可。
5、有的时候,网络延迟或故障就会导致小程序不能录音,所以查手机的网络情况,过一会再试如散试。
6、段扒检查一下手机设置,有的时候手机的安全卫士会自动禁止微信的某些功能(录音之类的),找到后手动更改下就可以了。
7、重启手机,一些软件突然不能用,重启一下手机就能解决。
8,也有可能是因为软件出现了问题,大家可以试一试卸载掉小程序,重新安装一遍,看看问题能否解决。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)