dcloudio / dcloudio/native-docs

recorderManager调用录音时,如果授权处于授权弹窗过程中调用stop方法录制的会是杂音

Open
#96 2 comments 0 reactions 2 assignees Claimed by @tonlion View on GitHub
Dominant language
No language data
Stars
88
Forks
75
PR merge metrics
No merged PRs in 30d

Description

**问题描述**
[问题描述:尽可能简洁清晰地把问题描述清楚]
recorderManager调用录音时,如果授权处于授权弹窗过程中调用stop方法录制的会是杂音,应用重启后一切正常

**复现步骤**
[复现问题的步骤]
场景:用户点击button触发录制,这个时候弹窗授权弹窗点击同意或者允许都会触发button的touchend事件。这个时候回调用stop方法,这段时间内再次录制音频都是杂音。重启app后一切正常

[或者可以直接贴源代码]

**预期结果**
[使用简洁清晰的语言描述你希望生效的预期结果]
预期是类似于微信发送语音的效果。目前在授权过程中导致recorderManager有一些小问题

**实际结果**
[这里请贴上你的报错截图或文字]

录制
```
async requestAndroidPermission(permisionID,type) {
let self=this;
var result = await permision.requestAndroidPermission(permisionID)
if (result == 1) {
result=1;
} else if (result == 0) {
uni.removeStorageSync('first_record');
if(type!='check'){
uni.showModal({
content: "系统麦克风已关闭",
confirmText: "确定",
showCancel: false,
success: function(res) {
}
})
}
} else {
uni.removeStorageSync('first_record');
if(type!='check'){
uni.showModal({
content: "需要麦克风权限",
confirmText: "设置",
success: function(res) {
if (res.confirm) {
permision.gotoAppPermissionSetting();
}
}
})
}
}
console.log('************语音权限'+result)
return result
},
async startRecord() { //开始录音
let status = await this.requestAndroidPermission('android.permission.RECORD_AUDIO');
console.log(status);
if (status !== 1) {
return;
}
//不是第一次的情况
let result=uni.getStorageSync('first_record');
console.log('**************'+result)
if(result){
this.$refs.popup.open();
this.audio_tip='松开发送';
}
recorderManager.start({
duration:60000,
format: 'mp3'
});
},
```
录制结束
```
recordEnd(e){
let info=uni.getSystemInfoSync();
if(info.platform=='ios'){
this.audio_tip='按住说话'
this.$refs.popup.close();
recorderManager.stop();
}else{
//是否是第一次进来
let result=uni.getStorageSync('first_record');
if(result){
this.audio_tip='按住说话'
this.$refs.popup.close();
recorderManager.stop();
}
}
},

```
**系统信息:**
- 发行平台: [mac]
- 操作系统 [Android 7.1.1]
- HBuilderX版本 [2.7.14.20200618]
- uni-app版本 [如使用Vue-cli创建/运行项目,则提供`npm run info`的运行结果]
- 设备信息 [如 iPhone8 Plus]

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.