我是WebRTC的初学者,并试图在两个浏览器窗口之间建立对等连接。我在本地运行的nodejs中实现了简单的websocket服务器。在提出候选人之前,一切似乎都很好。远程流在交换候选项后不会启动。我搜索并运行了几个例子,但无法获得我的工作。
我的 UI 有一些用于通信的输入。以下是我正在做的呼叫:
在第一个窗口中输入用户名,并在第一个窗口中输入远程用户名user1
user2
在第二个窗口中输入用户名,在第二个窗口中输入远程用户名user2
user1
单击每个两个窗口中的按钮。(在此之后,信令服务器将知道它们)。Connect to server
在第一个窗口中选择我的第一个相机设备,然后在第二个窗口中选择我的第二个相机设备。(相机将在此之后启动)
在第一个窗口中单击呼叫
问题是:远程流显示在被调用方窗口(第二个窗口)上,但从调用方窗口(第一个窗口)的开发控制台中,我没有看到函数运行。因此,远程流不会显示在调用方上。但我看到了候选日志。onTrack
因此,呼叫者看不到被叫方,但被叫方看到呼叫者。
index.html
我在两个浏览器窗口中打开此文件两次(如 file://...)。
<!DOCTYPE html>
<html>
<head>
<title>Webrtc Test</title>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
</head>
<body>
<table border="2">
<tr>
<td>
<span>Signaling Server addres:</span>
<input type="text" id="serverAddress" value="localhost:3001" onload="window.serverAddress = this;" />
</td>
<td>
<span>Username:</span>
<input type="text" id="username" value="user1" onload="window.username = this;" />
</td>
<td>
<span>Target username:</span>
<input type="text" id="remoteUsername" value="user2" onload="window.remoteUsername = this;" />
</td>
<td>Devices</td>
</tr>
<tr>
<td>
<textarea
name="log"
id="log"
cols="50"
rows="10"
style="width: 100%; resize: vertical;"
></textarea>
</td>
<td>
<video
id="selfVideo"
autoplay
playsinline
muted
onload="window.selfVideo = this;"
></video>
</td>
婷婷同学_
素胚勾勒不出你
相关分类