manage screen share preview lifecycle
This commit is contained in:
1 parent
f2d62ac142
commit
1fc8f0d469
1 file changed
+21
@@ -869,9 +869,26 @@ function onRemoteTrack(peer, ev) {
|
||||
track.addEventListener('ended', () => {
|
||||
if (peer.screenStreams.get(stream.id) === stream) {
|
||||
peer.screenStreams.delete(stream.id);
|
||||
if (!peer.screenStreams.size) {
|
||||
peer.state = { ...peer.state, sharing: false };
|
||||
captureRumIssue('Remote screen share ended', 'INFO', {
|
||||
peerId: peer.id,
|
||||
peerName: peer.name,
|
||||
streamId: stream.id,
|
||||
});
|
||||
}
|
||||
renderScreens();
|
||||
renderTiles();
|
||||
}
|
||||
});
|
||||
stream.addEventListener('inactive', () => {
|
||||
if (peer.screenStreams.get(stream.id) === stream) {
|
||||
peer.screenStreams.delete(stream.id);
|
||||
peer.state = { ...peer.state, sharing: false };
|
||||
renderScreens();
|
||||
renderTiles();
|
||||
}
|
||||
}, { once: true });
|
||||
renderScreens();
|
||||
if (isNewScreenShare) playRetroCue('share');
|
||||
console.log('remote screen share from', peer.name);
|
||||
@@ -993,6 +1010,10 @@ async function startScreenShare() {
|
||||
videoTrack.addEventListener('ended', () => stopScreenShare(stream));
|
||||
}
|
||||
renderScreens();
|
||||
// Open a desktop preview automatically; mobile keeps the in-page preview.
|
||||
if (window.matchMedia('(min-width: 700px)').matches) {
|
||||
popOutShare({ key: `me:${stream.id}`, name: `${S.name} (you)`, stream, local: true });
|
||||
}
|
||||
renderTiles();
|
||||
for (const btn of shareButtons) btn.classList.add('active');
|
||||
toast('You are sharing your screen', 'ok');
|
||||
|
||||
Reference in new issue
Block a user