Я использую PeerJS и их облачные серверы для создания приложения WebRTC. Вот мой код:
navigator.getMedia = ( navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
window.URL = window.URL || window.webkitURL;
var callSettings = {
video: {
mandatory: {
maxWidth: 400,
maxHeight: 300
}
},
audio: true
};
$(document).ready(function ()
{
var videoel = $("#teacher-stream")[0];
$(document).on('click', ".start-call", function () //A button initiates call
{
var peerID = $(this).data('id'); //Button contains ID of peer
navigator.getMedia(callSettings, function (stream)
{
var call = peer.call(peerID, stream);
call.on('stream', function(remoteStream)
{
console.log('stream!');
videoel.src = window.URL.createObjectURL(remoteStream);
//On stream copy data to video el
});
});
});
peer.on('call', function(call)
{
console.log('got call');
navigator.getMedia(callSettings, function(stream)
{
call.answer(stream);
call.on('stream', function(remoteStream)
{
videoel.src = window.URL.createObjectURL(remoteStream);
});
});
});
});
Поток инициируется, и обоим пользователям предлагается предоставить доступ к веб-камере. Однако после этого отображается только самый первый кадр. Хотя значок пульсирующей записи на вкладке Chrome все еще отображается, дальнейшие кадры не отображаются. Поток!" log выше добавляется только один раз.
Я попытался разместить сервер локально, чтобы проверить, была ли проблема в этом, и это не так. Что мне не хватает?