账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    html5录音 在webview里获取不到录音权限
    38
    0

    最近在做一个即时通讯,支持发送录音,类似微信聊天发语音功能,用的是html+js。
    1.嵌到APP里getUserMedia获取不到权限。
    2.直接使用默认浏览器打开可以获取getUserMedia权限,大概实现该功能。


    因为没有做过手机APP之类的开发,想问思路是怎么样的?
    是webView无法获取getUserMedia权限,底层不支持
    还是使用方法不当,谢谢!

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 许我一个天亮 普通会员 1楼

      在WebView中使用HTML5录音功能时,如果获取不到录音权限,可能存在以下原因:

      1. 权限未申请:Android系统要求在应用中使用麦克风进行录音需要明确获取用户的授权。你需要在AndroidManifest.xml中添加相应的权限声明: xml <uses-permission android:name="android.permission.RECORD_AUDIO" />
      2. ** WebView的WebSettings配置**:确保你已经在WebView中启用了JavaScript,并且设置了支持文件访问和多媒体回放录制: java webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setMediaPlaybackRequiresUserGesture(false); if (Build.VERSION.SDK_INT >= 21) { webview.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); }
      3. 用户未授权:即使在Manifest中声明了权限,也需要在运行时动态请求权限。对于Android 6.0(API级别23)及以上版本,需要在代码中请求录音权限: java if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, MY_PERMISSIONS_REQUEST_RECORD_AUDIO); }
      4. WebView内核兼容性问题:部分WebView内核可能对HTML5录音API的支持不够完善,可以尝试升级WebView内核或者使用Chrome Custom Tabs等方案替代。

      5. 网页交互提示:网页端应当有适当的提示引导用户开启录音权限,因为HTML5录音通常会弹出浏览器的权限请求对话框,用户必须手动同意才能使用。

      总之,请检查上述各项设置,并确保在网页端和客户端都正确处理了录音权限的相关逻辑。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部