From d7bfd52773b1714f0dbfc28978e22a8eeceef263 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Wed, 7 Jan 2026 12:37:04 +0100 Subject: [PATCH] Implemented sound effects --- app/MindWork AI Studio/wwwroot/app.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/MindWork AI Studio/wwwroot/app.js b/app/MindWork AI Studio/wwwroot/app.js index d2c784d7..2dd43e5c 100644 --- a/app/MindWork AI Studio/wwwroot/app.js +++ b/app/MindWork AI Studio/wwwroot/app.js @@ -33,9 +33,23 @@ let changedMimeType = false; let pendingChunkUploads = 0; window.audioRecorder = { + playSound: function(soundPath) { + try { + const audio = new Audio(soundPath); + audio.play().catch(error => { + console.warn('Failed to play sound effect:', error); + }); + } catch (error) { + console.warn('Error creating audio element:', error); + } + }, + start: async function (dotnetRef, desiredMimeTypes = []) { const stream = await navigator.mediaDevices.getUserMedia({ audio: true }); + // Play start recording sound effect: + this.playSound('/sounds/start_recording.ogg'); + // When only one mime type is provided as a string, convert it to an array: if (typeof desiredMimeTypes === 'string') { desiredMimeTypes = [desiredMimeTypes]; @@ -123,6 +137,9 @@ window.audioRecorder = { console.log('Audio recording - all chunks uploaded, finalizing.'); + // Play stop recording sound effect: + window.audioRecorder.playSound('/sounds/stop_recording.ogg'); + // Stop all tracks to release the microphone: mediaRecorder.stream.getTracks().forEach(track => track.stop());