Я разрабатываю приложение для видеовызовов с socket.io узла js, но оказывается, что оно только излучает видео, а звук генерирует эхо только при его излучении, в качестве достижения, что аудио достигает клиента?
(function(d, w, n, io) {
"use strict";
var io = io(),
startCamera = false,
video = d.querySelector("#video"),
canvas = d.querySelector("#canvas"),
context = canvas.getContext("2d");
n.streaming =
n.mediaDevices.getUserMedia ||
n.webkitGetUserMedia ||
n.mozGetUserMedia ||
n.msGetUserMedia;
n.streaming(
{
video: true,
audio: true
},
function(stream) {
startCamera = true;
video.src = w.URL.createObjectURL(stream);
},
function(err) {
alert("error al acceder a la camara web: " + err);
}
);
w.playVideo = (function(cb) {
return (
w.requestAnimationFrame ||
w.webkitRequestAnimationFrame ||
w.mozRequestAnimationFrame ||
w.msRequestAnimationFrame ||
function(cb) {
w.setTimeout(cb, 1000 / 100);
}
);
})();
function streamVideo(context, canvas, video) {
var outputStream = canvas.toDataURL("image/jpeg", 0.2);
context.drawImage(video, 0, 0);
if (startCamera) io.emit("streaming", outputStream);
playVideo(function() {
streamVideo(context, canvas, video);
});
}
w.addEventListener("load", function() {
video.autoplay = true;
video.style.display = "none";
streamVideo(context, canvas, video);
});
})(document, window, navigator, io);