我正在尝试使用html和javascript构建视频聊天网络API。到目前为止,我发现这个代码可以访问客户端设备上的麦克风和网络摄像头,并在该客户端的屏幕上显示视频和音频。这是代码:
<html>
<head>
<script>
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
function(stream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(stream);
video.onloadedmetadata = function(e) {
video.play();
};
},
function(err) {
console.log("The following error occurred: " + err.name);
}
);
} else {
console.log("getUserMedia not supported");
}
</script>
</head>
<body>
<video></video>
</body>
</html>
要使视频聊天网络应用程序正常工作,必须将视频和音频数据发送回服务器,服务器可以处理该数据并将其发送到其他人可以进行视频聊天的客户端计算机。我做了一些研究,我相信websockets可能是将视频和音频数据发送到服务器以及服务器发送到其他客户端计算机的最佳选择。我希望能够使用服务器端和客户端javascript制作websocket。当我做一些研究时,我发现了一些代码,解释了如何创建websocket连接,然后是如何向服务器发送一些数据。这是我找到的代码:
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function()
{
// Web Socket is connected, send data using send()
ws.send("Message to send");
alert("Message is sent...");
};
我不明白服务器如何使用服务器端javascript接收数据。我也不明白服务器端javascript应该如何通过websocket将该数据发送到另一台客户端计算机上的客户端javascript。 我非常感谢有关如何将流式视频和音频数据发送到服务器的所有想法,源代码和链接,然后服务器使用服务器端javascript接收数据,然后让服务器发送该数据到另一台客户电脑。同样,我想知道websockets是否是完成此任务的好方法,如果没有,您会建议采用哪些方式。
感谢您的时间!
答案 0 :(得分:1)
这个问题没有好的解决方案。浏览器无法通过html5和java脚本在没有插件(flash,java)的情况下完成此操作。
我发现只有api是WebRTC: https://webrtc.org/start/ http://web-engineering.info/node/57 他们正试图解决这个问题并提供解决方案而无需额外的软件,但目前它仍然是实验性的,而不是标准的。
答案 1 :(得分:0)