[mirotalk] - add missing screen handle on disconnect, update dep
This commit is contained in:
+1
-1
@@ -45,7 +45,7 @@ dependencies: {
|
||||
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
|
||||
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
|
||||
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
||||
* @version 1.6.26
|
||||
* @version 1.6.27
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Generated
+29
-29
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"name": "mirotalk",
|
||||
"version": "1.6.26",
|
||||
"version": "1.6.27",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mirotalk",
|
||||
"version": "1.6.26",
|
||||
"version": "1.6.27",
|
||||
"license": "AGPL-3.0",
|
||||
"dependencies": {
|
||||
"@mattermost/client": "11.0.4",
|
||||
"@ngrok/ngrok": "1.5.2",
|
||||
"@sentry/node": "^10.22.0",
|
||||
"@sentry/node": "^10.23.0",
|
||||
"axios": "^1.13.2",
|
||||
"chokidar": "^4.0.3",
|
||||
"colors": "^1.4.0",
|
||||
@@ -29,14 +29,14 @@
|
||||
"jsdom": "^27.1.0",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"nodemailer": "^7.0.10",
|
||||
"openai": "^6.8.0",
|
||||
"openai": "^6.8.1",
|
||||
"qs": "^6.14.0",
|
||||
"socket.io": "^4.8.1",
|
||||
"swagger-ui-express": "^5.0.1",
|
||||
"uuid": "13.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"mocha": "^11.7.4",
|
||||
"mocha": "^11.7.5",
|
||||
"node-fetch": "^3.3.2",
|
||||
"nodemon": "^3.1.10",
|
||||
"prettier": "3.6.2",
|
||||
@@ -1161,18 +1161,18 @@
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/@sentry/core": {
|
||||
"version": "10.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz",
|
||||
"integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==",
|
||||
"version": "10.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.23.0.tgz",
|
||||
"integrity": "sha512-4aZwu6VnSHWDplY5eFORcVymhfvS/P6BRfK81TPnG/ReELaeoykKjDwR+wC4lO7S0307Vib9JGpszjsEZw245g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node": {
|
||||
"version": "10.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.22.0.tgz",
|
||||
"integrity": "sha512-PfG8AMT2kgFJ7rWb0lLJOmjLW2riytTliLMjfoJ8/tLGk964uKqE0xM7FLtXZjlLJqTXVYCVG7VIPj185uyckQ==",
|
||||
"version": "10.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.23.0.tgz",
|
||||
"integrity": "sha512-5PwJJ1zZ89tB8hrjTVKNE4fIGtSXlR+Mdg2u1Nm2FJ2Vj1Ac6JArLiRzMqoq/pA7vwgZMoHwviDAA+PfpJ0Agg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@opentelemetry/api": "^1.9.0",
|
||||
@@ -1205,9 +1205,9 @@
|
||||
"@opentelemetry/sdk-trace-base": "^2.1.0",
|
||||
"@opentelemetry/semantic-conventions": "^1.37.0",
|
||||
"@prisma/instrumentation": "6.15.0",
|
||||
"@sentry/core": "10.22.0",
|
||||
"@sentry/node-core": "10.22.0",
|
||||
"@sentry/opentelemetry": "10.22.0",
|
||||
"@sentry/core": "10.23.0",
|
||||
"@sentry/node-core": "10.23.0",
|
||||
"@sentry/opentelemetry": "10.23.0",
|
||||
"import-in-the-middle": "^1.14.2",
|
||||
"minimatch": "^9.0.0"
|
||||
},
|
||||
@@ -1216,14 +1216,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node-core": {
|
||||
"version": "10.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.22.0.tgz",
|
||||
"integrity": "sha512-88Yyn+Qvmp0kPMnNRWgpUlAvhI9CNPqOT+0glW0L7OoN8LkJcNgx2GGUoLrJ+RGeHz/S7dIJY6DGa+u0Not2Qg==",
|
||||
"version": "10.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.23.0.tgz",
|
||||
"integrity": "sha512-3vhttO19pta7zIuecSrLoPTVN7NdjKtb/WK241H8znwKxukx3fj3M6+upN+JQtC6pERO3HfQwBpMMT9RMCUr3Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@apm-js-collab/tracing-hooks": "^0.3.1",
|
||||
"@sentry/core": "10.22.0",
|
||||
"@sentry/opentelemetry": "10.22.0",
|
||||
"@sentry/core": "10.23.0",
|
||||
"@sentry/opentelemetry": "10.23.0",
|
||||
"import-in-the-middle": "^1.14.2"
|
||||
},
|
||||
"engines": {
|
||||
@@ -1240,12 +1240,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/opentelemetry": {
|
||||
"version": "10.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.22.0.tgz",
|
||||
"integrity": "sha512-XHXYYq3zsQ/dj1kQ7cGGLFIEVRmrmjcMhiJHvmKKsUGKxQjHe2G0LuG8clHIPkmbg7yEIxCT/W2I9QzrwYt5+g==",
|
||||
"version": "10.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.23.0.tgz",
|
||||
"integrity": "sha512-ZbSB5y8K8YXp5+sBp2w7xHsNLv9EglJRTRqWMi2ncovXy4jcvo+pSreiZu68nSGvxX25brYKDw19vl+tnmqZVg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry/core": "10.22.0"
|
||||
"@sentry/core": "10.23.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
@@ -3845,9 +3845,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mocha": {
|
||||
"version": "11.7.4",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.4.tgz",
|
||||
"integrity": "sha512-1jYAaY8x0kAZ0XszLWu14pzsf4KV740Gld4HXkhNTXwcHx4AUEDkPzgEHg9CM5dVcW+zv036tjpsEbLraPJj4w==",
|
||||
"version": "11.7.5",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz",
|
||||
"integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -4213,9 +4213,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/openai": {
|
||||
"version": "6.8.0",
|
||||
"resolved": "https://registry.npmjs.org/openai/-/openai-6.8.0.tgz",
|
||||
"integrity": "sha512-GQUpzb9FoNkh1wqJuDIQ8e/Sq8dW+T3GakG6wJTXBE8Lufx1GaUcgZd087vhm8f/MiOzsTEkfRamYxzJ/jOoiw==",
|
||||
"version": "6.8.1",
|
||||
"resolved": "https://registry.npmjs.org/openai/-/openai-6.8.1.tgz",
|
||||
"integrity": "sha512-ACifslrVgf+maMz9vqwMP4+v9qvx5Yzssydizks8n+YUJ6YwUoxj51sKRQ8HYMfR6wgKLSIlaI108ZwCk+8yig==",
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"openai": "bin/cli"
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mirotalk",
|
||||
"version": "1.6.26",
|
||||
"version": "1.6.27",
|
||||
"description": "A free WebRTC browser-based video call",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
@@ -43,7 +43,7 @@
|
||||
"dependencies": {
|
||||
"@mattermost/client": "11.0.4",
|
||||
"@ngrok/ngrok": "1.5.2",
|
||||
"@sentry/node": "^10.22.0",
|
||||
"@sentry/node": "^10.23.0",
|
||||
"axios": "^1.13.2",
|
||||
"chokidar": "^4.0.3",
|
||||
"colors": "^1.4.0",
|
||||
@@ -61,14 +61,14 @@
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"js-yaml": "^4.1.0",
|
||||
"nodemailer": "^7.0.10",
|
||||
"openai": "^6.8.0",
|
||||
"openai": "^6.8.1",
|
||||
"qs": "^6.14.0",
|
||||
"socket.io": "^4.8.1",
|
||||
"swagger-ui-express": "^5.0.1",
|
||||
"uuid": "13.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"mocha": "^11.7.4",
|
||||
"mocha": "^11.7.5",
|
||||
"node-fetch": "^3.3.2",
|
||||
"nodemon": "^3.1.10",
|
||||
"prettier": "3.6.2",
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ let brand = {
|
||||
},
|
||||
about: {
|
||||
imageUrl: '../images/mirotalk-logo.gif',
|
||||
title: 'WebRTC P2P v1.6.26',
|
||||
title: 'WebRTC P2P v1.6.27',
|
||||
html: `
|
||||
<button
|
||||
id="support-button"
|
||||
|
||||
+39
-2
@@ -15,7 +15,7 @@
|
||||
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
|
||||
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
|
||||
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
||||
* @version 1.6.26
|
||||
* @version 1.6.27
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -559,6 +559,7 @@ let localVideoMediaStream; // my webcam
|
||||
let localScreenMediaStream; // my screen share
|
||||
let localAudioMediaStream; // my microphone
|
||||
let noiseProcessor = null; // RNNoise audio processing
|
||||
let peerScreenMediaElements = {}; // keep track of our peer <video> tags, indexed by peer_id_screen
|
||||
let peerVideoMediaElements = {}; // keep track of our peer <video> tags, indexed by peer_id_video
|
||||
let peerAudioMediaElements = {}; // keep track of our peer <audio> tags, indexed by peer_id_audio
|
||||
|
||||
@@ -2713,6 +2714,7 @@ function handleDisconnect(reason) {
|
||||
checkRecording();
|
||||
|
||||
for (const peer_id in peerConnections) {
|
||||
const peerScreenId = peer_id + '___screen';
|
||||
const peerVideoId = peer_id + '___video';
|
||||
const peerAudioId = peer_id + '___audio';
|
||||
|
||||
@@ -2727,6 +2729,20 @@ function handleDisconnect(reason) {
|
||||
}
|
||||
}
|
||||
|
||||
const screenVideo = getId(peerScreenId);
|
||||
if (screenVideo) {
|
||||
// Peer screen in focus mode
|
||||
if (screenVideo.hasAttribute('focus-mode')) {
|
||||
const remoteScreenFocusBtn = getId(peer_id + '_screen_focusMode');
|
||||
if (remoteScreenFocusBtn) {
|
||||
remoteScreenFocusBtn.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (peerScreenMediaElements[peerScreenId] && peerScreenMediaElements[peerScreenId].parentNode) {
|
||||
peerScreenMediaElements[peerScreenId].parentNode.removeChild(peerScreenMediaElements[peerScreenId]);
|
||||
}
|
||||
if (peerVideoMediaElements[peerVideoId] && peerVideoMediaElements[peerVideoId].parentNode) {
|
||||
peerVideoMediaElements[peerVideoId].parentNode.removeChild(peerVideoMediaElements[peerVideoId]);
|
||||
}
|
||||
@@ -2744,6 +2760,7 @@ function handleDisconnect(reason) {
|
||||
chatDataChannels = {};
|
||||
fileDataChannels = {};
|
||||
peerConnections = {};
|
||||
peerScreenMediaElements = {};
|
||||
peerVideoMediaElements = {};
|
||||
peerAudioMediaElements = {};
|
||||
|
||||
@@ -2762,6 +2779,7 @@ function handleRemovePeer(config) {
|
||||
|
||||
const { peer_id } = config;
|
||||
|
||||
const peerScreenId = peer_id + '___screen';
|
||||
const peerVideoId = peer_id + '___video';
|
||||
const peerAudioId = peer_id + '___audio';
|
||||
|
||||
@@ -2780,6 +2798,21 @@ function handleRemovePeer(config) {
|
||||
adaptAspectRatio();
|
||||
}
|
||||
|
||||
if (peerScreenId in peerScreenMediaElements) {
|
||||
const peerScreen = getId(peerScreenId);
|
||||
if (peerScreen) {
|
||||
// Peer screen in focus mode
|
||||
if (peerScreen.hasAttribute('focus-mode')) {
|
||||
const remoteScreenFocusBtn = getId(peer_id + '_screen_focusMode');
|
||||
if (remoteScreenFocusBtn) {
|
||||
remoteScreenFocusBtn.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
peerScreenMediaElements[peerScreenId].parentNode.removeChild(peerScreenMediaElements[peerScreenId]);
|
||||
adaptAspectRatio();
|
||||
}
|
||||
|
||||
if (peerAudioId in peerAudioMediaElements) {
|
||||
peerAudioMediaElements[peerAudioId].parentNode.removeChild(peerAudioMediaElements[peerAudioId]);
|
||||
}
|
||||
@@ -2792,6 +2825,7 @@ function handleRemovePeer(config) {
|
||||
delete chatDataChannels[peer_id];
|
||||
delete fileDataChannels[peer_id];
|
||||
delete peerConnections[peer_id];
|
||||
delete peerScreenMediaElements[peerScreenId];
|
||||
delete peerVideoMediaElements[peerVideoId];
|
||||
delete peerAudioMediaElements[peerAudioId];
|
||||
delete allPeers[peer_id];
|
||||
@@ -4242,6 +4276,9 @@ async function loadRemoteMediaStream(stream, peers, peer_id, kind) {
|
||||
remoteScreenWrap.appendChild(remoteScreenMedia);
|
||||
remoteScreenWrap.appendChild(remoteScreenPeerName);
|
||||
|
||||
// need later on disconnect or remove peers
|
||||
peerScreenMediaElements[remoteScreenMedia.id] = remoteScreenWrap;
|
||||
|
||||
videoMediaContainer.appendChild(remoteScreenWrap);
|
||||
attachMediaStream(remoteScreenMedia, stream);
|
||||
adaptAspectRatio();
|
||||
@@ -12302,7 +12339,7 @@ function showAbout() {
|
||||
Swal.fire({
|
||||
background: swBg,
|
||||
position: 'center',
|
||||
title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.6.26',
|
||||
title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.6.27',
|
||||
imageUrl: brand.about?.imageUrl && brand.about.imageUrl.trim() !== '' ? brand.about.imageUrl : images.about,
|
||||
customClass: { image: 'img-about' },
|
||||
html: `
|
||||
|
||||
Reference in New Issue
Block a user