uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音

uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音

示例代码:

  1. 解压项目

  2. 运行到手机上,直接运行到默认的index.vue

  3. 点击录音,开始录音后,隐藏APP至后台,等超过60秒后,再等20秒,即80秒后再次进入APP,点击播放录音,会发现,这20秒的录音是无效的,没有声音的。以此类推。

    总结
    在APP隐藏至后台60秒后,录制的X秒都是无效的,没有声音的,直至再次回到APP中

操作步骤:

  1. 点击 开启录音
  2. 隐藏APP到后台,继续录音(从此刻计算)
  3. 60秒后,再次进入APP

预期结果:

  1. 所有在后台,只要录音没结束,都应该能正常录制声音

实际结果:

隐藏APP后开始计算,60秒内的录音是正常的,60秒后的录音是听不到声音的。

bug描述:

UNi录音开启后,在软件切后台超过60秒,便自动录音听不到声音了,直到再次进入软件,才会录制得到声音。

录音60秒后失效.zip


更多关于uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

【正确报bug的姿势】https://ask.dcloud.net.cn/article/38139

更多关于uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html


已经重新报了。。 经过测试,使用了H5+的 方法后,依旧后台录音60秒后 就不行了

这是一个典型的Android后台录音权限限制问题。在Android系统中,当应用进入后台超过一定时间(通常是60秒左右),系统会限制应用的录音权限以节省资源和保护隐私。

解决方案:

  1. 使用前台服务:通过plus.android.importClass创建前台服务,保持应用在后台的活动状态:
const main = plus.android.runtimeMainActivity();
const Intent = plus.android.importClass('android.content.Intent');
const NotificationManager = plus.android.importClass('android.app.NotificationManager');
  1. 配置后台运行权限:在manifest.json中添加:
{
  "permissions": {
    "android": {
      "permissions": [
        "android.permission.FOREGROUND_SERVICE"
      ]
    }
  }
}
  1. 优化录音配置:在开始录音时设置合适的参数:
const rec = uni.getRecorderManager();
rec.start({
  duration: 0, // 无限时长
  format: 'mp3'
});
回到顶部