在Chrome上,我正在使用完整的网络摄像头和麦克风支持easyrtc.js两种方式,但Safari不想合作。
最新版本的Safari列为WebRTC兼容(https://webkit.org/blog/7627/safari-technology-preview-32/)。此外,我可以在“开发”菜单下选择“启用旧版WebRTC API”。
如果未启用Legacy WebRTC API
,我会收到来自easyrtc Your browser doesn't appear to support WebRTC.
的错误消息启用后,我从easyrtc.js Unhandled Promise Rejection: TypeError: Type error
函数中收到错误消息this.createObjectURL
: window.URL.createObjectURL(mediaStream)
。
如何让Safari的行为与Chrome版本相同?
答案 0 :(得分:1)
面对与easyrtc相同的问题,然后在开发中使用了easyrtc的beta分支,它的工作原理。以前,正在使用master分支。
beta分支包含playsinline
用于safari。
使用以下方法克隆beta
分支:
git clone -b <branchName> <repository>
装置
git clone -b beta https://github.com/priologic/easyrtc.git
答案 1 :(得分:0)
免责声明:我对easyrtc.js
一无所知看起来easyrtc依赖于旧版本的WebRTC API来检测WebRTC兼容性,这就解释了为什么Legacy选项会让您更进一步了解。
就承诺错误而言:this.createObjectURL
已被弃用了相当长一段时间,赞成srcObject
分配。
如何让Safari的行为与Chrome版本相同?
你可能不会让他们表现得一样。 但是我建议您结帐adapter并将其包含在您的项目中。这个项目试图消除浏览器供应商之间的这些API差异,直到API稳定下来。