b***@vip.qq.com
b***@vip.qq.com
  • 发布:2021-09-22 18:29
  • 更新:2021-09-23 15:46
  • 阅读:366

【报Bug】平板(安卓6)在录音过程中重启或杀进程。后续录音都会录到第一个文件内

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 3.2.3

HBuilderX类型: 正式

HBuilderX版本号: 3.2.3

手机系统: Android

手机系统版本号: Android 6.0

手机厂商: 联想

手机机型: 平板 Lenovo TB-8703F

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://www.pgyer.com/GfNB

示例代码:

const r = plus.audio.getRecorder();
r.record

//code

r.stop

操作步骤:

复现方式很简单。
使用真机调试,打开录音, 改代码, reload 后继续录音。 之前的录音没有关闭。(后面所有的录音都录到第一个文件里面了) ;
杀掉进程 后再次录音也录到第一个文件里面了。

预期结果:

不管杀进程还是重启,应该自动关闭或解除录音占用。

实际结果:

出现问题后,设备上所有录音应用都无法使用

bug描述:

平板(安卓6)在录音过程中重启或杀进程。后续录音都会录到第一个文件内。
杀掉进程 后再次录音也录到第一个文件里面了。
重启设备恢复正常。

  1. ios 没有问题。
  2. 小米11(安卓11)reload两三次后会闪退。 闪退后录音正常
  3. 平板(安卓6) 录音过程中杀进程,后续录音都在第一个录音文件里面。(需要重启设备才行,杀进程无效, 系统自带录音也无法使用,如图)
2021-09-22 18:29 负责人:无 分享
已邀请:
DCloud_Android_zl

DCloud_Android_zl

麻烦提供一下代码,我这边无法复现。

b***@vip.qq.com

b***@vip.qq.com (作者)

//测试录音代码
const dir = '_doc/fyFile/testAudio/';
const r = plus.audio.getRecorder();
console.log('start ok', '------- 修改这里然后ctrl+s ------1');
r.record({ filename: dir }, function(r) {
console.log('stop ok', '----------');
}, function(e) {
console.log('stop err', '----------');
});
setTimeout(() => {
//r.stop();
});

//真机调试,每次修改后直接保存就好 。 在平板上代码没有任何报错。直接在文件夹里面看文件的录音时长。除了第一个其他全是0秒

  • DCloud_Android_zl

    只会在真机调试的时候有问题吗?云打包的apk正不正常?

    2021-09-27 17:39

  • b***@vip.qq.com (作者)

    回复 DCloud_Android_zl: 云打包后的apk 也有这个出现这个症状,但出现原因未知。目前我的解决方案就是把所有的recorder 对象都放在一个数组里面, 退出页面时循环再次执行stop, 保证每次都stop。

    后续能不能增加一个 录音状态是否占用的接口? 因为这个问题可能跟机型或系统有关,不好正面解决。

    但是哪怕闪退也比不知道有问题好。比如(考试填写的场景,录了10分钟最后发现没有录音,就很尴尬。如果一开始就提示,需要重启或其他操作,就还好)

    2021-10-09 15:53

  • b***@vip.qq.com (作者)

    回复 b***@vip.qq.com: 这个方式也不保险... , 目前是录音开始后 1秒检测时长。最保险,时长低于0.3 那么提示用户重启应用。

    2021-10-18 16:00

该问题目前已经被锁定, 无法添加新回复