cuốn sách gpt4 ai đã làm

javascript - webRTC 音频/语音

In lại Tác giả: Walker 123 更新时间:2023-11-28 15:17:15 30 4
mua khóa gpt4 Nike

我正在尝试使用webRTC和php作为服务器端来实现单向语音传输。

Kiểm trasamples ,我无法理解webRTC机制。

在我看来,流程应该是这样的:

  1. 调用者和接收者在服务器上注册
  2. 接收者监听来电
  3. 调用者向服务器询问接收者的 IP
  4. 服务器将 IP 发送给调用者
  5. 调用者直接连接到接收者

Nhưngsample code ,(在本地计算机上运行)

function call() {
trace('Starting call');
var servers = null;
var pcConstraints = {
'optional': []
};
pc1 = new RTCPeerConnection(servers, pcConstraints);
trace('Created local peer connection object pc1');
pc1.onicecandidate = iceCallback1;
pc2 = new RTCPeerConnection(servers, pcConstraints);
trace('Created remote peer connection object pc2');
pc2.onicecandidate = iceCallback2;
pc2.onaddstream = gotRemoteStream;
trace('Requesting local stream');
navigator.mediaDevices.getUserMedia({
audio: true,
video: false
})
.then(gotStream)
.catch(function(e) {
alert('getUserMedia() error: ' + e.name);
});
}

不使用 IP 地址或任何可以转换为 IP 的识别 token 。

怎么会这样?

câu trả lời hay nhất

首先,您需要在客户端之间提供某种信号 channel 。大多数人通过 WebSocket 使用某种协议(protocol)(通常基于 JSON 或 SIP)连接到后端的 Node.js、SIP 服务器或消息代理等,然后可以在两个客户端之间建立桥梁。您几乎可以发送直接从 WebRTC PeerConnection 提取的数据 block 。这包括 SDP、ICE 候选者等。PeerConnection 可以直接使用其他对等点生成的数据,因此您无需处理数据格式化问题。只需将其打包成 JSON 对象并通过 WebSockets 将其发送到 Node,然后让 Node 将其发送到另一端即可。由您来设计注册端点如何找到彼此并创建此桥。

我们使用基于 WebSocket 的 MQTT 来完成此操作。在我们的模型中,每个客户端都订阅自己的 MQTT 主题,并且每一方都可以向其他客户端发布有关这些主题的消息。客户端向订阅主题的后端服务注册这些主题,或者您可以使用保留消息让 MQTT 代理管理主题。您可以在这里阅读有关我们方法的更多信息:http://www.wasdev.net/webrtc 。我们开源了信号协议(protocol),您可以使用任何开放的 MQTT 代理来实现此目的。我们还创建了包含 AngularJS 模块的 SDK,您可以在此处使用:http://angular-rtcomm.wasdev.developer.ibm.com/

关于javascript - webRTC 音频/语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197379/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress