开发环境:
- vue/cli 4.3.1搭建的全家桶
- TypeScript 3.83
- SIP.js 0.16.1
- Chrome 81.0
在接入Websocket和SIPURI之后,创建UserAgent
和注册Register
成功,然后发送通话邀请报错:
TypeError Cannot read property 'getUserMedia' of undefined
由于本地暂时没有麦克风,只有摄像头,所以认为是设备不能完全支持的问题。但是获取摄像头和麦克风权限的弹框没有出现,随即否认该判断。
Starting with Chrome 47, getUserMedia() requests are only allowed from secure origins: HTTPS or localhost. link
然后搜索到原因是该方法需要在HTTPS
的支持,虽然localhost
也可以解决问题但是综合考虑还是打开HTTPS
更好,于是打开vue/cli
的HTTPS
支持,通过命令行或者 vue ui
在任务 - serve
- 参数 - HTTPS处开启。虽然浏览器仍然提示不安全,但是硬件权限已经可以开启。
现在已经可以发出通话邀请,问题解决。
网友评论