Я использую SIPJS , чтобы совершать звонки между двумя абонентами с помощью веб-браузера.
Теперь я хочу добавить ( Обмен экранами ), пока что ямне удалось открыть окно совместного использования экрана Chrome, и я получил поток и воспроизвел его в элементе видео.
Но мне действительно нужно отправить этот поток другому абоненту, чтобы он мог видеть мой общий доступ к экрану.
То, что я пробовал до сих пор:
- После того, как я получаю (поток обмена экранами), я передаю его
session.sessionDescriptionHandler.peerConnection
, изатем перехватить поток (или трек), используя эти события onTrackAdded , onaddTrack , onaddStream , onstream
Но ни одно из событий не получает ничего. - Также пытался отправить поток с
video constraint
до начала вызова
video: {
mandatory: {
chromeMediaSource: 'desktop',
// chromeMediaSourceId: event.data.sourceId,
maxWidth: window.screen.width > 1920 ? window.screen.width : 1920,
maxHeight: window.screen.height > 1080 ? window.screen.height : 1080
},
optional: []
}
- Даже попытка отправить поток с
video constraint
navigator.mediaDevices.getDisplayMedia(constraints)
.then(function(stream) {
//We've got media stream
console.log("----------then triggered-------------");
var options = {
sessionDescriptionHandlerOptions: {
constraints: {
audio: true,
video: stream
}
}
}
pub_session = userAgent.invite(reciver_name,options);
})
.catch(function(error) {
console.log("----------catch-------------");
console.log(error);
});
также не работала.
Здесьмой код
Сначала получите поток совместного использования экрана и отправьте его другому пользователю
// Get screen sharing and send it.
navigator.mediaDevices.getDisplayMedia(constraints)
.then(function(stream) {
//We've got media stream
console.log("----------then triggered-------------");
var pc = session.sessionDescriptionHandler.peerConnection;
stream.getTracks().forEach(function(track) {
pc.addTrack(track, stream);
});
})
.catch(function(error) {
console.log("----------catch-------------");
console.log(error);
});
Затем перехватите этот поток на другой стороне
// Reciving stream or track
userAgent.on('invite', function (session) {
session.on('trackAdded', function() {
console.log('-------------trackAdded triggered--------------');
});
session.on('addTrack', function (track) {
console.log('-------------addTrack triggered--------------');
});
session.on('addStream', function (stream) {
console.log('-------------addStream triggered--------------');
});
session.on('stream', function (stream) {
console.log('-------------stream triggered--------------');
});
});
Но все женичего не получить из этого кода выше
Так как я могу передать этот поток или дорожку другому абоненту после начала вызова?
спасиботак много