首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角app指令中webrtc流的观察与使用

角app指令中webrtc流的观察与使用
EN

Stack Overflow用户
提问于 2016-06-14 12:57:44
回答 2查看 419关注 0票数 0

实现了一个基于webrtc的webapp使用角1.x。webrtc相关功能在服务中抽象,控制器监视服务中的变量。

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

代码语言:javascript
复制
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

只有当我尝试设置视频元素源时,才会看到这一点,而不是当我在webrtc上打电话时。从服务和使用传递webrtc流对象时是否存在问题?下面是html

代码语言:javascript
复制
<video ng-src="{{localStream}}" autoplay muted></video>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-14 13:55:53

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

此外,正如@禤浩焯-ber建议的那样,无论是在服务中还是在控制器中,$sce.trustAsResourceUrl()都是如此。

核心问题似乎是监视流对象。避开它。

票数 1
EN

Stack Overflow用户

发布于 2016-06-14 13:28:08

我认为这是因为该流URL不受信任。你必须这样做:

代码语言:javascript
复制
localStream = $sce.trustAsResourceUrl(window.URL.createObjectURL(localStream));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37812733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档