2

我目前正在开发一个库,该库MediaStreamTrack通过RTCPeerConnection.

我目前遇到的问题是除了远程轨道外一切正常。我的MediaStreamTrack相机是在本地主机上创建的,可以毫无问题地发送,但是当我尝试发送从外部服务器接收的轨道时,它只显示黑框。

我猜这和这里的问题一样。

我检查过的

正在接收曲目(我检查过chrome://webrtc-internals)并且视频元素处于播放状态。我在控制台和 webrtc-internals 中都没有看到任何错误。此外,流/轨道已启用且未静音。在源窗口上使用captureStream()结果相同。

使用外部源捕获和流式传输视频元素可以正常工作。

可能的原因

我认为问题可能在于初始流来自不是的域,localhost因此无法重新流式传输它。在 w3c 标准中是这样描述的:

轨道可能包含应用程序无法访问的内容。这可能是由于任何会使跟踪 CORS 跨域的原因。这些轨道可以提供给 addTrack() 方法,并为它们创建一个 RTCRtpSender,但不得传输内容。发送静音(音频)、黑帧(视频)或同等缺失的内容来代替轨道内容。

来源 (10.)

主意

我不确定我上面提到的“可能的问题”是否是真正的问题,但我的一个想法是重写请求和响应标头以匹配localhost但它不起作用。我猜它不会影响 WebRTC 连接。

我使用的电子钩子:

session.defaultSession.webRequest.onBeforeSendHeaders();
session.defaultSession.webRequest.onHeadersReceived();
4

0 回答 0