uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音
uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音
示例代码:
-
解压项目
-
运行到手机上,直接运行到默认的index.vue
-
点击录音,开始录音后,隐藏APP至后台,等超过60秒后,再等20秒,即80秒后再次进入APP,点击播放录音,会发现,这20秒的录音是无效的,没有声音的。以此类推。
总结
在APP隐藏至后台60秒后,录制的X秒都是无效的,没有声音的,直至再次回到APP中
操作步骤:
- 点击 开启录音
- 隐藏APP到后台,继续录音(从此刻计算)
- 60秒后,再次进入APP
预期结果:
- 所有在后台,只要录音没结束,都应该能正常录制声音
实际结果:
隐藏APP后开始计算,60秒内的录音是正常的,60秒后的录音是听不到声音的。
bug描述:
UNi录音开启后,在软件切后台超过60秒,便自动录音听不到声音了,直到再次进入软件,才会录制得到声音。
更多关于uni-app 录音开启后软件切后台60秒后录音录制不到声音 直接重新进入软件才会录制得到声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
已经重新报了。。 经过测试,使用了H5+的 方法后,依旧后台录音60秒后 就不行了
这是一个典型的Android后台录音权限限制问题。在Android系统中,当应用进入后台超过一定时间(通常是60秒左右),系统会限制应用的录音权限以节省资源和保护隐私。
解决方案:
- 使用前台服务:通过
plus.android.importClass
创建前台服务,保持应用在后台的活动状态:
const main = plus.android.runtimeMainActivity();
const Intent = plus.android.importClass('android.content.Intent');
const NotificationManager = plus.android.importClass('android.app.NotificationManager');
- 配置后台运行权限:在manifest.json中添加:
{
"permissions": {
"android": {
"permissions": [
"android.permission.FOREGROUND_SERVICE"
]
}
}
}
- 优化录音配置:在开始录音时设置合适的参数:
const rec = uni.getRecorderManager();
rec.start({
duration: 0, // 无限时长
format: 'mp3'
});