html52.com
我爱小程序-开发者交流社区

RecorderManager的状态管理

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 需求 iOS 12.1 iPhoneXsMax 7.0.3

这个简单的代码片段来实现长按录音。touchStart时调用recorderManager.start(),touchEnd时调用recorderManager.stop()。但是在真机上无法工作,目前看到的原因是如果我长按释放过快,会导致在onStart之前就触发stop,然后通过onError报错。这使得我们要实现长按录音非常困难,需要做到:

1. 自制一个recorderManager对微信的recorderManager进行包装,保存stop调用,根据callback规律猜测recorderManager内部状态,并在正确的状态时才能调用

2. 在start和onStart之间无法stop录音,导致我们在onStart里需要根据flag立刻调用stop()。但用户仍然可见录音界面(状态)闪烁。若连续快速点击,会出现状态累积,不断开始关闭,持续数秒用户难以操作。


期望:

stop()应当不论处于什么状态都能够stop,不应让用户保存recorderManager内部状态并实现基于recorderManager状态的逻辑。

或者,能否有其他建议来实现长按录音。


谢谢。


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付