adapter.js自2012年底或者2013年初WebRTC早期的时候就已经出现了。它最初是Google的apprtc demo的一部分。原始版本仍可在Chrome tree中找到。它是一个非常小的项目,还没有150行。主要功能是隐藏像webkitRTCPeerConnection和mozRTCPeerConnection这样的前缀差异,并提供函数将MediaStream附加到HTML的
在WebRTC自由发展的日子里,每个人都在编写自己的库,使WebRTC更加简单。这在2015年中期开始发生变化,当时微软的Edge浏览器也出现了。虽然Edge浏览器不需要getUserMedia的前缀,但将MediaStream附加到视频元素仍然可以在三种不同的实现中使用。这表明有必要出现一种标准化的行为。另外,正如微软的Bernard Aboba指出的那样,书籍中出现的API的前缀版本—这是错误的引导。
随着复杂性的增加(目前超过2200行代码),对adapter.js代码本身进行更改的测试面临着更多的问题。最初由Selenium提供支持的测试已经分解为单元测试和端到端测试,这些测试使用标准测试工具,如karma,mocha,和chai,在Travis-CI上的各种浏览器中运行时做出决定,并将结果与以前的运行结果做比较。这体现了测试WebRTC库的最新技术水平,并一杯其他项目采用。
在2017年的大部分时间里,主要关注点都在Chrome中填充track-based API。这是向WebRTC 1.0 API迈出的一大步,在Mozilla的这篇博文中有所描述,同样也在adapter.js中。这些测试测试证明确保API的一致性是非常棘手的,因为现有代码可能依赖于与旧API的某些交互,并且该API未被指定。正如往常一样,在大量变化中也有一些回归—但是,在JavaScript库中发现可以固定版本的那些回归比使用本机生成的回归更好。在2018年初,Chrome 64版将会变得更稳定,原生的addTrack版本将会替代产生。注意:由于与getStats相关的错误,addTrack还没有完全准备好作为产品。直到Chrome M65的出现之前,shim还将是首选—确保你的adapter版本在更改后进行了更新。
https://webrtc.github.io/adapter/adapter-latest.js
引入指定的版本
https://webrtc.github.io/adapter/adapter-1.0.2.js
npm install webrtc-adapter
import adapter from 'webrtc-adapter';
看一下浏览器信息
adapter.browserDetails.browser
adapter.browserDetails.version
!!window.RTCPeerConnection
【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
![]()
参考
https://webrtc.qq.com:8687/
http://qcloudtrtc.com/webrtc-samples/abilitytest/index.html
https://www.qcloudtrtc.com/webrtc-samples/index.html
https://main.qcloudimg.com/raw/document/product/pdf/647_16862_cn.pdf
视频播放的媒介是 H5 提供的 Video(音视频)和 Audio(纯音频)。
video 和 audio 的 muted autoplay playsinline 属性都是需要注意的,请看下面的代码注释
| 操作系统平台 | 浏览器/webview | 版本要求 | 备注 |
|---|---|---|---|
| iOS | Safari ( 只支持Safari ) | 11.1.2 | 由于苹果 Safari 仍有偶现的 bug,产品化方案建议先规避,待苹果解决后再使用对于iOS可以考虑使用我们的小程序解决方案 |
| Android | TBS (微信和手机QQ的默认Webview) | 43600 | 微信和手机QQ默认内置的浏览器内核为TBS。TBS 介绍 |
| Android | Chrome | 60+ | 需要支持 H264 |
| Mac | Chrome | 47+ | |
| Mac | Safari | 11+ | |
| Windows(PC) | Chrome | 52+ | |
| Windows(PC) | QQ浏览器 | 10.2 |
function checkTBSVersion(ua) {
//ua = "Mozilla/5.0 (Linux; Android 7.1.1; vivo X9 Build/NMF26F; wv)
//AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49
//Mobile MQQBrowser/6.2 TBS/043501 Safari/537.36
//MicroMessenger/6.5.13.1100 NetType/WIFI Language/zh_CN";var list = ua.split(" ");for (var i = 0; i < list.length; i++) {var item = list[i];if (item.indexOf("TBS") !== -1 || item.indexOf("tbs") !== -1) {var versionStr = item.split("/")[1];var version = parseInt(versionStr) || 0;if (version <= 43600) {alert("您的TBS版本号(" + versionStr + ")过低,不支持WebRTC,请升级!");}}}
}
上一篇:C/C++家族族谱管理系统