我使用 chrome 21 运行我的 webrtc 代码。
如果我在同一个 chrome 中打开两个选项卡,然后打开其中包含 webrtc 代码的页面。
一个选项卡用于发送视频流;一个选项卡用于接收视频流
效果很好。
但是,如果我使用两种隐身模式或两种不同的 Chrome 浏览器打开页面,
我可以得到sdp and 候选人信息正确。看来视频可以解码信息。
In remote video, I can see only
此外,它似乎崩溃了。我尝试点击“关闭 chrome”但没用。
有人有类似的问题吗?
测试时WebRTC,我发现当我们调用时会出现这种情况peerConnection.addStream(…)
in the wrong地方 - -
您必须记住,订购非常重要WebRTC!
更新时间:2014 年 7 月 17 日星期四下午 6:36(UTC)
以下情况会出现视频空白:
- 您正在使用 STUN,而您的 SSL 证书已过期或包含无效条目。
- 您正在使用 STUN,但它是公司防火墙、医院网络或专用网络阻止或隐藏外部 IP 地址或某些端口。
- 两个对等方都有无效的 sendrecv/sendonly/recvonly 对
- 提供者没有附加流,或者是 Firefox 在用户仅附加音频流(无论您使用什么)的情况下失败
OfferToReceiveVideo:true
- 您正在检查
HTMLMediaElement.HAVE_CURRENT_DATA
or mediaElement.paused
or mediaElement.currentTime
而 Android 则存在与这些属性有关的已知问题。
解决方案?
- 使用 XirSys 中的 TURN 或安装你自己的 https://code.google.com/p/rfc5766-turn-server/.
- 确保您使用有效的 SSL 证书或改用 HTTP。
- 确保提供者附加了流;还要确保
OfferToReceiveAudio
/OfferToReceiveVideo
根据附加的流使用。
- 确保您没有修改SDP;还尝试比较两个对等点之间的 SDP 并找出不匹配的地方。
如今,代码的排序是一种罕见的问题,因为我们都知道addStream
应在创建报价或答复之前调用;即使是重新协商的会议。
尝试使用chrome://webrtc-internals
和火狐的about:config
查看这些浏览器内部发生了什么;并始终使用控制台日志onIceConnectionStateChange
帮助您检查 ICE-Agent 是否存在的事件failed
在 ICE 连接检查过程中或...
有时为提供者设置远程 sdp 太早会导致异常。总是使用onSdpError
两者都是为了createOffer
/createAnswer
and setLocalDescription
/setRemoteDescription
e.g.
peer.setRemoteDescription(remoteSDP, onSdpSuccess, onSdpFailure);
一些演示资源:
-
https://github.com/muaz-khan/WebRTC-实验 https://github.com/muaz-khan/WebRTC-Experiment / Demos https://www.webrtc-experiment.com/
- https://github.com/mozilla/webrtc-landing https://github.com/mozilla/webrtc-landing
and https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)