mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-06-28 20:29:53 +00:00
desktop: using system sound in screenshare (#4035)
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
This commit is contained in:
parent
f6ceb89c4b
commit
925cb39397
2 changed files with 34 additions and 5 deletions
|
@ -486,8 +486,22 @@ const processCommand = (function () {
|
|||
}
|
||||
return;
|
||||
}
|
||||
for (const t of call.localStream.getTracks())
|
||||
t.stop();
|
||||
if (!call.screenShareEnabled) {
|
||||
for (const t of call.localStream.getTracks())
|
||||
t.stop();
|
||||
}
|
||||
else {
|
||||
// Don't stop audio track if switching to screenshare
|
||||
for (const t of call.localStream.getVideoTracks())
|
||||
t.stop();
|
||||
// Replace new track from screenshare with old track from recording device
|
||||
for (const t of localStream.getAudioTracks()) {
|
||||
t.stop();
|
||||
localStream.removeTrack(t);
|
||||
}
|
||||
for (const t of call.localStream.getAudioTracks())
|
||||
localStream.addTrack(t);
|
||||
}
|
||||
call.localCamera = camera;
|
||||
const audioTracks = localStream.getAudioTracks();
|
||||
const videoTracks = localStream.getVideoTracks();
|
||||
|
@ -547,7 +561,9 @@ const processCommand = (function () {
|
|||
//},
|
||||
//aspectRatio: 1.33,
|
||||
},
|
||||
audio: true,
|
||||
audio: false,
|
||||
// This works with Chrome, Edge, Opera, but not with Firefox and Safari
|
||||
// systemAudio: "include"
|
||||
};
|
||||
return navigator.mediaDevices.getDisplayMedia(constraints);
|
||||
}
|
||||
|
|
|
@ -689,7 +689,18 @@ const processCommand = (function () {
|
|||
}
|
||||
return
|
||||
}
|
||||
for (const t of call.localStream.getTracks()) t.stop()
|
||||
if (!call.screenShareEnabled) {
|
||||
for (const t of call.localStream.getTracks()) t.stop()
|
||||
} else {
|
||||
// Don't stop audio track if switching to screenshare
|
||||
for (const t of call.localStream.getVideoTracks()) t.stop()
|
||||
// Replace new track from screenshare with old track from recording device
|
||||
for (const t of localStream.getAudioTracks()) {
|
||||
t.stop()
|
||||
localStream.removeTrack(t)
|
||||
}
|
||||
for (const t of call.localStream.getAudioTracks()) localStream.addTrack(t)
|
||||
}
|
||||
call.localCamera = camera
|
||||
|
||||
const audioTracks = localStream.getAudioTracks()
|
||||
|
@ -755,7 +766,9 @@ const processCommand = (function () {
|
|||
//},
|
||||
//aspectRatio: 1.33,
|
||||
},
|
||||
audio: true,
|
||||
audio: false,
|
||||
// This works with Chrome, Edge, Opera, but not with Firefox and Safari
|
||||
// systemAudio: "include"
|
||||
}
|
||||
return navigator.mediaDevices.getDisplayMedia(constraints)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue