From a1aedaa5941ffb49b502528a3b3fc057916f3320 Mon Sep 17 00:00:00 2001 From: kharhamel Date: Fri, 11 Dec 2020 15:35:13 +0100 Subject: [PATCH] FEAT: now play a sound when a user quit the webrtc group --- front/dist/index.html | 3 +++ front/dist/resources/objects/webrtc-out.mp3 | Bin 0 -> 28838 bytes front/src/WebRtc/MediaManager.ts | 9 +++++++-- front/src/WebRtc/SimplePeer.ts | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 front/dist/resources/objects/webrtc-out.mp3 diff --git a/front/dist/index.html b/front/dist/index.html index 5806bef7..ea2f517f 100644 --- a/front/dist/index.html +++ b/front/dist/index.html @@ -113,6 +113,9 @@ + diff --git a/front/dist/resources/objects/webrtc-out.mp3 b/front/dist/resources/objects/webrtc-out.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..53c45686122b64a945bb73a79adbf34d62dc7f4a GIT binary patch literal 28838 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 literal 0 HcmV?d00001 diff --git a/front/src/WebRtc/MediaManager.ts b/front/src/WebRtc/MediaManager.ts index 6c3b6898..7fced45c 100644 --- a/front/src/WebRtc/MediaManager.ts +++ b/front/src/WebRtc/MediaManager.ts @@ -38,6 +38,7 @@ export class MediaManager { microphoneClose: HTMLImageElement; microphone: HTMLImageElement; webrtcInAudio: HTMLAudioElement; + private webrtcOutAudio: HTMLAudioElement; constraintsMedia : MediaStreamConstraints = { audio: true, video: videoConstraint @@ -57,8 +58,6 @@ export class MediaManager { private discussionManager: DiscussionManager; - private userInputManager?: UserInputManager; - private hasCamera = true; private triggerCloseJistiFrame : Map = new Map(); @@ -67,7 +66,9 @@ export class MediaManager { this.myCamVideo = HtmlUtils.getElementByIdOrFail('myCamVideo'); this.webrtcInAudio = HtmlUtils.getElementByIdOrFail('audio-webrtc-in'); + this.webrtcOutAudio = HtmlUtils.getElementByIdOrFail('audio-webrtc-out'); this.webrtcInAudio.volume = 0.2; + this.webrtcOutAudio.volume = 0.2; this.microphoneBtn = HtmlUtils.getElementByIdOrFail('btn-micro'); this.microphoneClose = HtmlUtils.getElementByIdOrFail('microphone-close'); @@ -566,6 +567,10 @@ export class MediaManager { removeActiveScreenSharingVideo(userId: string) { this.removeActiveVideo(`screen-sharing-${userId}`) } + + playWebrtcOutSound(): void { + this.webrtcOutAudio.play(); + } isConnecting(userId: string): void { const connectingSpinnerDiv = this.getSpinner(userId); diff --git a/front/src/WebRtc/SimplePeer.ts b/front/src/WebRtc/SimplePeer.ts index 1d81b704..2d8e5162 100644 --- a/front/src/WebRtc/SimplePeer.ts +++ b/front/src/WebRtc/SimplePeer.ts @@ -202,8 +202,8 @@ export class SimplePeer { * This is triggered twice. Once by the server, and once by a remote client disconnecting */ private closeConnection(userId : number) { + mediaManager.playWebrtcOutSound(); try { - //mediaManager.removeActiveVideo(userId); const peer = this.PeerConnectionArray.get(userId); if (peer === undefined) { console.warn("closeConnection => Tried to close connection for user "+userId+" but could not find user");