小小菜76055421
小小菜76055421
  • 发布:2022-08-15 11:07
  • 更新:2022-09-08 17:03
  • 阅读:682

【报Bug】ios端关于录音权限bug

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS12.1

HBuilderX类型: 正式

HBuilderX版本号: 3.5.3

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iPhonex

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

用户开启录音,还未经用户同意或拒绝,录音就已经开始了;或者说,用户已经拒绝录音权限了,还可以进行录音

预期结果:

用户开启录音时,用户应先同意或拒绝,再判断是否录音

实际结果:

用户还未进行同意,录音已经开始

bug描述:

用户触发录音权限时,即便用户关闭录音权限,还是会触发uni.getRecorderManager().onStart的监听,即关闭了权限,还能录音;

2022-08-15 11:07 负责人:DCloud_iOS_WZT 分享
已邀请:
DCloud_iOS_WZT

DCloud_iOS_WZT

目前只要触发start onStart就会回调 建议在录音前先做权限判断 后续会优化这个api

  • 小小菜76055421 (作者)

    如果用户是第一次录音,要是先进行权限判断,那就弹不出授权弹窗了

    2022-08-18 14:28

  • DCloud_iOS_WZT

    回复 小小菜76055421: 如果未授权调用录音弹授权弹框 如果拒绝授权再弹权限提示

    2022-08-18 15:10

  • DCloud_iOS_WZT

    回复 小小菜76055421: 拒绝授权 会有onError回调

    2022-08-18 15:12

  • 小小菜76055421 (作者)

    回复 DCloud_iOS_WZT: 第一次进来,ios是先要访问的权限的,这个咋提前去授权呢

    2022-08-18 15:30

  • 小小菜76055421 (作者)

    回复 小小菜76055421: 所以我的意思是,肯定要先触发录音,才会有授权弹窗的弹出,之后才能通过权限的判断处理逻辑;这个感觉有些矛盾了

    2022-08-18 15:40

  • 小小菜76055421 (作者)

    回复 DCloud_iOS_WZT: 而且,在第一次进行录音时,即触发start时,不会触发onError,而是会触发onStop

    2022-08-18 16:16

  • DCloud_iOS_WZT

    回复 小小菜76055421: 权限检测到未授权再去访问权限

    2022-08-18 17:05

  • DCloud_iOS_WZT

    回复 小小菜76055421: 未授权的情况下你不要弹框 去start 如果是拒绝授权弹框提示去授权 懂我的意思吗

    2022-08-18 17:09

  • DCloud_iOS_WZT

    回复 小小菜76055421: 你如果授权了 录制完成的时候会触发onStop 如果没授权会触发onError

    2022-08-18 17:11

  • 小小菜76055421 (作者)

    回复 DCloud_iOS_WZT: 实际情况是,初次进入时,start,然后系统权限弹窗出现,然后录制结束,触发onStop,整个过程,我还未对权限进行操作,即系统弹窗还在;

    2022-08-18 17:13

  • 小小菜76055421 (作者)

    回复 小小菜76055421: 录制结束不是我主动结束,就由于弹窗的出现,中断了结束

    2022-08-18 17:14

  • DCloud_iOS_WZT

    回复 小小菜76055421: 所以 让你提前判断权限啊

    2022-08-18 17:17

dafeizhu

dafeizhu

可以做一个前置按钮,点击按钮获取ios的录音权限,AVAudioSession类,如果权限结果返回为未请求(即代表你还为请求过该权限),这时去调用一次<code>recorderManager.start();recorderManager.stop();</code>,会弹出权限申请弹窗
之后用户再次点击按钮,你获取到的权限便不是未请求了,那你就可以通过该权限返回去做相应的动作,如你上文的onStart监听

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