diff --git a/bigbluebutton-html5/imports/ui/components/activity-check/component.jsx b/bigbluebutton-html5/imports/ui/components/activity-check/component.jsx index 628a2e717a6b35050ce5bbddefac51d1ebd94748..598095e77af649368d8db04e74e4f93ef73b7204 100644 --- a/bigbluebutton-html5/imports/ui/components/activity-check/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/activity-check/component.jsx @@ -76,6 +76,7 @@ class ActivityCheck extends Component { playAudioAlert() { this.alert = new Audio(`${Meteor.settings.public.app.cdn + Meteor.settings.public.app.basename}/resources/sounds/notify.mp3`); + alert.addEventListener('ended', () => { alert.src = null; }); this.alert.play(); } diff --git a/bigbluebutton-html5/imports/ui/components/audio/audio-test/container.jsx b/bigbluebutton-html5/imports/ui/components/audio/audio-test/container.jsx index 6fef02dfce07d98b15e9c83df458442ae573cdb4..ac3b4b6605b94c1e19520ced30a1248d76e7e349 100644 --- a/bigbluebutton-html5/imports/ui/components/audio/audio-test/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/audio/audio-test/container.jsx @@ -9,6 +9,7 @@ export default withTracker(() => ({ outputDeviceId: Service.outputDeviceId(), handlePlayAudioSample: (deviceId) => { const sound = new Audio((Meteor.settings.public.app.cdn + Meteor.settings.public.app.basename) + '/resources/sounds/audioSample.mp3'); + sound.addEventListener('ended', () => { sound.src = null; }); if (deviceId && sound.setSinkId) sound.setSinkId(deviceId); sound.play(); }, diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index 18f1e31f3b2b0d4c4dd4d8e9a1a692a0edfc6347..5027304d4a02794ba712de40b59fdb4aa0431c1c 100755 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -628,6 +628,8 @@ class AudioManager { const audioAlert = new Audio(url); + audioAlert.addEventListener('ended', () => { audioAlert.src = null; }); + if (this.outputDeviceId && (typeof audioAlert.setSinkId === 'function')) { return audioAlert .setSinkId(this.outputDeviceId)