Если владелец комнаты включает демонстрацию экрана до подключения гостей к комнате, тогда всё работает нормально и демонстрация владельца отображается у гостей, но если включить демонстрацию когда в комнате уже находятся гости, тогда демонстрация отображается только у владельца.
Поскольку использую библиотеку
RTCMultiConnection, там есть демо версия именно
демонстрации экрана(
source code) и демонстрация экрана с веб-камерой (
source code), у меня демки не работаю, смотрел код демок, там мало что понятно, пытался интегрировать в свой код, не заработало, вообще, никак. Смотрел в issues на GitHub, там нету схожей проблемы (посмотрел почти все проблемы связанные с screen share).
Событие
onstream
со стороны гостя не реагирует на включение демонстрации.
Запуск демонстрации:screenShareOn() {
let thisAdminVC = this.getInstance();
this.connection.addStream({
screen: true,
oneway: true,
data: true,
streamCallback: function(stream) {
thisAdminVC.connection.extra.streamID = stream.id;
thisAdminVC.connection.updateExtraData();
thisAdminVC.videoContainerLocal.screen.elementHTML.appendChild(stream);
const videoTrack = stream.getVideoTracks()[1];
videoTrack.onended = () => {
thisAdminVC.connection.resetTrack();
}
thisAdminVC.connection.getAllParticipants().forEach( participant =>
thisAdminVC.connection.replaceTrack(videoTrack, participant, true)
);
}
});
this.connection.renegotiate();
}
Выключение демонстрации:screenShareOff() {
this.connection.attachStreams.forEach(function(stream) {
if (stream.idInstance.indexOf("isScreen") != -1) {
stream.getTracks().forEach(track => track.stop());
stream.getTracks().forEach(track => stream.removeTrack(track));
}
});
}