在angular app指令中观看和使用webrtc流

斯图斯佛

使用angular 1.x实现基于webrtc的webapp。与Webrtc相关的功能在服务中被抽象,并且控制器监视服务中的变量。

在服务中,当我使用$ rootScope。$ apply()设置流(本地或远程)时,将执行控制器中的watch函数。但是同时,我在控制台上看到以下错误。

vendor.44edef6c.js:5 TypeError: Illegal invocation
at P (vendor.44edef6c.js:3)
at P (vendor.44edef6c.js:3)
at P (vendor.44edef6c.js:3)
at o.$digest (vendor.44edef6c.js:6)
at o.$apply (vendor.44edef6c.js:6)
at scripts.d348f551.js:6
at Object.w [as emit] (scripts.d348f551.js:1)
at scripts.d348f551.js:2

仅当我尝试设置视频元素源时才看到此信息,而在进行audion webrtc调用时却没有看到。从服务传递webrtc流对象并使用时是否存在任何问题?下面是html

<video ng-src="{{localStream}}" autoplay muted></video>
斯图斯佛

如果您尝试从控制器观看webrtc流,似乎会出现一些问题,因为流对象非常复杂且庞大。因此,请使用URL.createObjectURL()然后将其转换为URL字符串$apply()通过这样做,我能够解决这些错误。

此外,正如@ adrian-ber$sce.trustAsResourceUrl()在服务中或在控制器中建议的那样。

核心问题似乎在监视流对象。躲开它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章