uni-app recorderManager录音无效

uni-app recorderManager录音无效

示例代码:

recorderManager.start({ format:“mp3” });


## 操作步骤:


startRecord() { //开始录音
recorderManager.start({
format:"mp3"
});
},

预期结果:

startRecord() { //开始录音 recorderManager.start({ format:“mp3” }); },


## 实际结果:


startRecord() { //开始录音
recorderManager.start({
format:"mp3"
});
},

bug描述:

recorderManager在新版框架 无法使用 有授权提示 有时会闪退


| 信息类别     | 信息内容         |
|--------------|------------------|
| 产品分类     | uniapp/App       |
| PC开发环境   | Windows          |
| PC版本号     | 10               |
| HBuilderX类型| 正式             |
| HBuilderX版本| 3.2.8            |
| 手机系统     | Android          |
| 手机版本号   | Android 11       |
| 手机厂商     | OPPO             |
| 手机机型     | r11              |
| 页面类型     | vue              |
| 打包方式     | 云端             |
| 项目创建方式 | HBuilderX        |

更多关于uni-app recorderManager录音无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

import App from ‘./App’ import uView from “./uview-ui” Vue.use(uView) //全局配置 import _config from ‘@/common/config’ Vue.prototype.$config = _config; import md5Libs from “uview-ui/libs/function/md5”; Vue.prototype.md5Libs = md5Libs;
//多语言 // 引入语言包,注意路径 import Chinese from ‘@/common/locales/zh.js’; import English from ‘@/common/locales/en.js’; import Thai from ‘@/common/locales/th.js’;
// 引入并使用vue-i18n import VueI18n from ‘vue-i18n’ Vue.use(VueI18n)
// 构造i18n对象 const i18n = new VueI18n({ // 默认语言,这里的local属性,对应message中的zh、en、th属性 locale: ‘en’, // 引入语言文件 messages: { // 要标识这里的语言属性,如:this.$i18n.locale = zh|en|th|xxx ‘zh’: Chinese, // 这里为上面通过import引入的语言包 ‘en’: English, ‘th’: Thai, } })
// #ifndef VUE3 import Vue from ‘vue’ Vue.config.productionTip = false App.mpType = ‘app’ const app = new Vue({ i18n,// 记得在这添加i18n …App }) // http拦截器,此为需要加入的内容,如果不是写在common目录,请自行修改引入路径 import httpInterceptor from ‘@/common/http.interceptor.js’ // 这里需要写在最后,是为了等Vue创建对象完成,引入"app"对象(也即页面的"this"实例) Vue.use(httpInterceptor, app) app.$mount() // #endif
// #ifdef VUE3 import { createSSRApp } from ‘vue’ export function createApp() { const app = createSSRApp(App) return { app } } // #endif

更多关于uni-app recorderManager录音无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的信息,recorderManager在Android 11设备上出现授权提示和闪退问题,这通常与Android系统的权限策略变更有关。以下是关键排查点:

  1. Android 11权限适配:Android 11引入了分区存储和权限策略调整。确保在manifest.json中正确配置录音权限:
{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"
        ]
      }
    }
  }
}
  1. 动态权限请求:在调用recorderManager.start()前,必须先通过uni.authorizeuni.getSetting获取录音权限授权。示例:
uni.getSetting({
  success(res) {
    if (!res.authSetting['scope.record']) {
      uni.authorize({
        scope: 'scope.record',
        success() {
          recorderManager.start({ format: "mp3" });
        }
      });
    } else {
      recorderManager.start({ format: "mp3" });
    }
  }
});
回到顶部