5***@qq.com
5***@qq.com
  • 发布:2021-06-16 11:45
  • 更新:2021-06-16 15:57
  • 阅读:896

业务场景:触摸启动录音,手指离开则结束录音,但是如果录音权限是询问状态则无法结束录音

分类:uni-app

如图所示

 <button @longpress.stop.prevent="soundStart" @touchend="soundFinish" @touchcancel="soundCancel"></button>
 soundStart(e){ //开始录音  
      recording = true  
        speakDuration = Date.now()  
        this.recorderManager.start({  
          format: 'mp3',  
          sampleRate: 16000,  
          encodeBitRate: 96000  
        })  
    }
soundFinish(e){ //录音结束  
        this.recorderManager.stop()  
    },

代码如上,如果我去touch触发录音权限 则弹出系统默认是否开启本地录音,如果我选择允许的话,此时应该是把录音关闭掉,然后再次touch触发录音 进行录音行为,但现在是如果弹出这个界面没办法关闭录音权限 touchend看似关闭但切换到后台录音还在继续,说明没有正确的关闭录音,不知道该如何处理才好,这个系统默认行为应该阻拦了touchend事件导致没有正确的关闭

2021-06-16 11:45 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

试试 touchcancel 呢

  • 5***@qq.com (作者)

    soundCancel(e){

    this.soundFinish()

    },


    我试过 同样是停止录音 没办法停止

    2021-06-16 14:25

5***@qq.com

5***@qq.com (作者)

感觉这是一个前后顺序的问题 因为用户点击的允许 这个时候 你已经end 结束了 所以导致这个地方没办法真正的监听到 ,但是系统默认的方法 又没用回调可以用

5***@qq.com

5***@qq.com (作者)

只能额外在写一个按钮专门停止录音 是可以的 但是为什么同一个按钮上写end还是cancel 都没办法停止呢

大傻智

大傻智 - it界的彭于晏

你可以在touch触发时先判断有没有开启录音权限,如果开启再录音,没有就不录音

  • 5***@qq.com (作者)

    这样也不行 因为你第一次如果来判断 肯定是没权限的 没权限的话就进入到设置页面开启权限 此时发现不到设置权限按钮 如何能开启权限呢 他只有触发了录音权限 下次进去设置页面的的时候才有录音按钮可以选择

    2021-06-16 15:22

  • 5***@qq.com (作者)

    我重新修改了一下就可以了,但是uniapp自己也有一个bug 就是如果不是提前判断就不行,我自己之前是没有开录音权限

    2021-06-23 19:14

DCloud_uniCloud_JSON

DCloud_uniCloud_JSON

我加你QQ跟踪一下这个问题。你通过一下

DCloud_uniCloud_JSON

DCloud_uniCloud_JSON

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