Adlaw
Adlaw
  • 发布:2024-12-26 16:20
  • 更新:2024-12-27 16:42
  • 阅读:47

uni.getRecorderManager()在鸿蒙平台存在问题

分类:uni-app

结束录音后,onStop事件执行次数累积增加,比如第一次stop,onStop事件执行了一次,第二次stop,onStop事件执行了两次,第三次stop,onStop事件执行了3次。导致我第二次发送语音会一次性发出两条,第三次会发出3条....依次类推。安卓和IOS同样的代码经过测试没有这个问题。当前是用mete60真机,HBX版本4.36。

2024-12-26 16:20 负责人:无 分享
已邀请:
Adlaw

Adlaw (作者)

有没有什么临时解决的方案?

  • DCloud_UNI_LXH

    没有代码无法排查,猜测你是每次都执行了一次 onStop 监听,你先把每次都监听的逻辑改一下,我也调整下代码

    2024-12-27 10:34

  • Adlaw (作者)

    回复 DCloud_UNI_LXH: 是的,每次都执行了onStop

    2024-12-27 11:25

  • Adlaw (作者)

    回复 DCloud_UNI_LXH: 我给您写了个案例可以试下。个人感觉问题是录音这个API在返回上级页面的时候没有卸载。

    2024-12-27 16:38

Adlaw

Adlaw (作者)

由于平台上传文件大小限制,没法传完整的uniapp项目,下面是两个页面,需要从index.vue跳转到testRecord.vue页面。

  • Adlaw (作者)

    测试流程:从index.vue跳转到testRecord.vue,进行录音操作(第一次正常),然后返回到index页面,再进testRecord页面,再进行录音操作,这次会出现问题(onStop里面打印了两次),如果继续执行这一整套操作,下次会打印三次,以此累加....

    2024-12-27 16:36

DCloud_UNI_LXH

DCloud_UNI_LXH

先从逻辑上不要每次都执行 onStop。下次发版会带上这个问题的修复

  • Adlaw (作者)

    不知道您理解的问题是不是和我一样。我之前是在一个页面里把onStop重复执行了,后来我给onStop放到onload里去了,第一次进来确实就正常了,但是返回上一个页面再进来这个页面就出现问题了。

    2024-12-27 17:01

  • Adlaw (作者)

    您说的临时解决方案让我不要每次都执行onStop,是要让我设置全局来判断?每次运行APP只执行一次onStop吗?

    2024-12-27 17:04

要回复问题请先登录注册