android webrtc support

之前有同事在沙龙分享webrtc的技术和一些实践指南,当时做了一点笔记。有点兴趣的,想业余玩一下,但是没想到会来得这么快。

webrtc 应该是一个协议,支持在浏览器上播放/直播视频。因为浏览器本身做了支持,所以H5开发上工作量很小。同事的分享主要集中在后端服务器架构上。有三种架构,Mesh/Mixer/Router,比较推荐的是Router。

同事说有遇到过回声的问题,是用调整过滤器和麦克风采样率搞定的。大概就是这样。

自测的方法可以是这样(用浏览器打开):

https://appr.tc/r/roomid?vrc=VP8&debug=loopback&vsc=VP8
https://webrtc.github.io/samples/src/content/peerconnection/pc1/

然后最近发现我也被拉到这个项目中了。因为H5先上了,所以原生这边要做一个浏览器支持。

查了好一会,原生这边比较有价值的一个实现在这里:

https://github.com/bedouillat/testWebRTC

重点代码可能是下面几行设置

settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setBuiltInZoomControls(true);
settings.setDomStorageEnabled(true);
settings.setDisplayZoomControls(false);
settings.setAllowContentAccess(true);
settings.setMediaPlaybackRequiresUserGesture(false);
WebView.setWebContentsDebuggingEnabled(true);
settings.setAppCacheEnabled(true);
settings.setAppCachePath(this.getContext().getCacheDir().toString());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(this, true);

setLayerType(View.LAYER_TYPE_HARDWARE, null);

也有坑,就是浏览器和webkit表现不一致,明明是一样的版本。webview自带的webkit就是不行。。iOS没有这个方面的问题。。

看到的报错信息是这样的:

chromium: [ERROR:internaldecoderfactory.cc(39)] The NullVideoDecoder doesn't support decoding.

查了一下,最接近问题的Issue是这个

https://bugs.chromium.org/p/chromium/issues/detail?id=734313
https://bugs.chromium.org/p/chromium/issues/detail?id=801501

问题还没解决,后面搞定了再更新。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值