当前位置:首页 » 《随便一记》 » 正文

安卓开发Webview RTC 适配

6 人参与  2024年05月10日 08:39  分类 : 《随便一记》  评论

点击全文阅读


一、场景

在混合开发方式中,项目前端使用了tracking.js 开发了一个人脸识别功能,但是在安卓端无法成功调用摄像头进行视频捕获,在浏览器中可以正常使用该功能。

二、问题分析

之前的音视频文件适配提供给前端的方式,都是通过input标签,而这次前端的使用方式很明显不是这种,查了一下tracking.js的实现原理,得到了getUserMedia这种方式,在html5中的使用,进而才了解到webRTC适配这个事情, 安卓默认没有授权。

参考文章:

webview权限适配和getUserMedia适配 | hss01248's blog

最终在代码中需要进行授权适配以及webview 设置修改处理:

WebSettings webSettings = mWebviewPage.getSettings();webSettings.setJavaScriptEnabled(true);webSettings.setMediaPlaybackRequiresUserGesture(false);webSettings.setAllowContentAccess(true);webSettings.setAllowFileAccess(true);webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE );

 

//WebRTC 适配//https://webrtc.github.io/samples/src/content/getusermedia/gum/@Overridepublic void onPermissionRequest(PermissionRequest request) {    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {        mWebRTCRequest = request;        Log.d(TAG,"request getOrigin="+request.getOrigin());        String[] permissonRes = request.getResources();        //判断是否包含了视频 和 音频 两种,分别转化为对应的安卓权限        boolean videoRequire = false;        boolean audioRequire = false;        for(String permission : permissonRes){            Log.d(TAG,"request permission="+permission);            if(permission.equals(PermissionRequest.RESOURCE_VIDEO_CAPTURE)){                videoRequire = true;            }else if (permission.equals(PermissionRequest.RESOURCE_AUDIO_CAPTURE)){                audioRequire = true;            }        }        //包含了音频则一定会要求视频        if (audioRequire){            boolean audioGranted =  HzNetUtil.selfPermissionGranted(mContext, Manifest.permission.RECORD_AUDIO);            boolean cameraGranted =  HzNetUtil.selfPermissionGranted(mContext, android.Manifest.permission.CAMERA);            if (audioGranted && cameraGranted){                request.grant(request.getResources());            }else {                ActivityCompat.requestPermissions(WebViewActivity.this,                        new String[]{android.Manifest.permission.CAMERA,                                Manifest.permission.RECORD_AUDIO                        }, Constants.PERMISSION_REQUEST_FOR_WEBVIEW_RTC);            }        }else {            //只要视频            boolean cameraGranted =  HzNetUtil.selfPermissionGranted(mContext, android.Manifest.permission.CAMERA);            if (cameraGranted){                request.grant(request.getResources());            }else {                ActivityCompat.requestPermissions(WebViewActivity.this,                        new String[]{android.Manifest.permission.CAMERA                        }, Constants.PERMISSION_REQUEST_FOR_WEBVIEW_RTC);            }        }    }else {        AFLog.w(TAG,"安卓低版本,不支持WebRTC");    }}

如此这般适配之后,基本可以正常通过webview 唤起摄像头进行业务功能了。

测试地址:
getUserMediaWebRTC code samplesicon-default.png?t=N7T8https://webrtc.github.io/samples/src/content/getusermedia/gum/ 


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/106108.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 《跟男友分手后,我成了他的白月光》程允川祝蓉蓉免费小说全文阅读_全本免费小说《跟男友分手后,我成了他的白月光》(程允川祝蓉蓉) -
  • 情散缘灭,你我绝然全章节(苏宸江雨柔)抖音热文_《情散缘灭,你我绝然全章节》最新章节免费在线阅读 -
  • 夜短梦未央全文阅读(夏琴韵顾越泽)最新热门小说_《夜短梦未央全文阅读》全集免费阅读 -
  • 孟晚森尹落月(等一个温晴暖冬热门小说)全文免费阅读无弹窗大结局_(孟晚森尹落月)等一个温晴暖冬热门小说免费阅读全文最新章节列表_笔趣阁(孟晚森尹落月) -
  • 寒夜孤灯对月明(裴行之沈卿璇)免费阅读 -
  • 你是我路过的四季全文阅读免费(傅清寒江宴婉)全文免费阅读无弹窗大结局_(你是我路过的四季全文阅读小说免费阅读)最新章节列表_笔趣阁(你是我路过的四季全文阅读) -
  • 雀登枝(邵麟锦明)小说完整版免费阅读_完结版免费小说雀登枝邵麟锦明 -
  • 《重生后,我踹掉夫君做女皇》沈洄崔青禾完结小说_完整版小说全文免费阅读《重生后,我踹掉夫君做女皇》沈洄崔青禾 -
  • 农门有喜:夫君别傲娇完整版小说,农门有喜:夫君别傲娇周景秀
  • 林知微时幸川小说在线免费阅读(错把真情付海棠无弹窗无删减)
  • 小说《一蓑烟雨春满城》免费阅读
  • 不原谅!虐师妹一时爽,全宗火葬场最新章节,不原谅!虐师妹一时爽,全宗火葬场免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1