uni-app 自定义运行基座无法获得录音权限

uni-app 自定义运行基座无法获得录音权限

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 win10
HBuilderX 正式版
HBuilderX版本 3.8.12
手机系统 Android
手机系统版本 Android 9.0
手机厂商 努比亚
手机机型 Z17
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • manifest.json的App权限配置已经配置了android.permission.RECORD_AUDIO

预期结果:

  • 获得录音权限

实际结果:

  • 没有显示这个权限,更没法获得

bug描述:

自定义运行基座无法获得录音权限,在manifest.json的App权限配置已经配置了android.permission.RECORD_AUDIO,还是提示没有权限,如下图,

Image Image


更多关于uni-app 自定义运行基座无法获得录音权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

手机直接卸载并重新安装

更多关于uni-app 自定义运行基座无法获得录音权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html


已经卸载过很多次了,昨天试了半天了也不行,今天早上一来,一试又好了,我又换了一个项目,再回过头再一试,又不行了,之后再卸载也不行了。

需要主动请求授权 plus.android.requestPermissions([‘android.permission.RECORD_AUDIO’], function(e) {
if (e.deniedAlways.length > 0) {
console.log('Always Denied!!! ’ + e.deniedAlways.toString());
}
if (e.deniedPresent.length > 0) {
console.log('Present Denied!!! ’ + e.deniedPresent.toString());
}
if (e.granted.length > 0) {
console.log('Granted!!! ’ + e.granted.toString());
}
}, function(e) {
console.log(‘Request Permissions error:’ + JSON.stringify(e));
});

上面第2个图的插件不就是主动请求权限吗?封装的那个wa-permissin那个插件

出现同样的问题 有人知道怎么回事吗

兄弟解决了没

在uni-app中,如果自定义运行基座无法获得录音权限,这通常与权限申请流程或配置有关。以下是一个详细的步骤和代码示例,展示如何在uni-app中申请并处理录音权限。

步骤一:配置manifest.json

首先,确保在manifest.json文件中已经配置了录音权限。

{
  "mp-weixin": { // 微信小程序
    "appid": "your-app-id",
    "setting": {
      "permission": {
        "scope.record": {
          "desc": "你的应用需要录音权限来录制音频"
        }
      }
    }
  },
  "app-plus": { // App平台
    "distribute": {
      "android": {
        "permissions": [
          "android.permission.RECORD_AUDIO"
        ]
      },
      "ios": {
        "plist": [
          {
            "key": "NSMicrophoneUsageDescription",
            "string": "你的应用需要录音权限来录制音频"
          }
        ]
      }
    }
  }
}

步骤二:前端代码申请权限

在需要录音的页面或组件中,使用JavaScript代码申请录音权限。

// 引入uni的录音管理模块
const recorderManager = uni.getRecorderManager();

// 监听录音权限状态变化
uni.getSetting({
  success: (res) => {
    if (!res.authSetting['scope.record']) {
      // 用户未授权录音权限,则引导用户授权
      uni.authorize({
        scope: 'scope.record',
        success: () => {
          console.log('录音权限申请成功');
          startRecording();
        },
        fail: () => {
          console.log('录音权限申请失败');
          // 处理用户拒绝授权的情况,例如显示提示信息
          uni.showModal({
            title: '提示',
            content: '您拒绝了录音权限,将无法录音',
            showCancel: false
          });
        }
      });
    } else {
      // 用户已授权,直接开始录音
      startRecording();
    }
  }
});

// 开始录音的函数
function startRecording() {
  recorderManager.start({
    format: 'mp3',
    success: () => {
      console.log('录音开始');
    },
    fail: (err) => {
      console.error('录音失败', err);
    }
  });
}

注意事项

  1. 权限申请时机:建议在需要录音的功能触发时申请权限,而不是在应用启动时。
  2. 用户引导:当用户拒绝权限时,给出明确的提示,并告知录音权限的重要性。
  3. 平台差异:不同平台(如微信小程序、App)的权限申请流程略有不同,确保在每个平台上都进行了正确的配置。

通过以上步骤和代码,你应该能够在uni-app中正确地申请和处理录音权限。如果仍然遇到问题,建议检查基座配置和前端代码是否有遗漏或错误。

回到顶部