yasserrmd commited on
Commit
5944eb7
·
verified ·
1 Parent(s): 5f40ba9

Update static/index.html

Browse files
Files changed (1) hide show
  1. static/index.html +19 -12
static/index.html CHANGED
@@ -1,7 +1,5 @@
1
-
2
  <!DOCTYPE html>
3
- <html lang="en">
4
- <head>
5
  <meta charset="UTF-8">
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
  <title>Data-over-Sound Interface</title>
@@ -104,9 +102,7 @@
104
  <div class="col-md-6">
105
  <div class="d-grid">
106
  <p class="control-label text-center">Listen for Data</p>
107
- <button id="recordButton" class="btn btn-record btn-lg text-white">
108
- <i class="bi bi-mic-fill icon-spacing"></i> Start Listening
109
- </button>
110
  </div>
111
  </div>
112
  <div class="col-md-6">
@@ -121,8 +117,8 @@
121
 
122
  <div class="audio-container">
123
  <p class="control-label mb-2">Audio Control</p>
124
- <audio id="audioPlayer" controls></audio>
125
- <div id="statusMessage" class="status-indicator text-center text-secondary"></div>
126
  </div>
127
 
128
  <div class="response-container">
@@ -145,6 +141,7 @@
145
  <script>
146
  let mediaRecorder;
147
  let audioChunks = [];
 
148
  const recordButton = document.getElementById("recordButton");
149
  const generateButton = document.getElementById("generateButton");
150
  const statusMessage = document.getElementById("statusMessage");
@@ -157,8 +154,13 @@
157
  recordButton.addEventListener("click", async () => {
158
  if (!mediaRecorder || mediaRecorder.state === "inactive") {
159
  try {
160
- const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
161
- mediaRecorder = new MediaRecorder(stream, { mimeType: "audio/webm" });
 
 
 
 
 
162
 
163
  mediaRecorder.ondataavailable = event => audioChunks.push(event.data);
164
 
@@ -205,6 +207,11 @@
205
  console.error("Error:", error);
206
  statusMessage.textContent = "Error processing audio data. Please try again.";
207
  }
 
 
 
 
 
208
  };
209
 
210
  audioChunks = [];
@@ -337,5 +344,5 @@
337
  return bufferArray;
338
  }
339
  </script>
340
- </body>
341
- </html>
 
 
1
  <!DOCTYPE html>
2
+ <html lang="en"><head>
 
3
  <meta charset="UTF-8">
4
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
  <title>Data-over-Sound Interface</title>
 
102
  <div class="col-md-6">
103
  <div class="d-grid">
104
  <p class="control-label text-center">Listen for Data</p>
105
+ <button id="recordButton" class="btn btn-lg text-white btn-record"><i class="bi bi-mic-fill icon-spacing"></i> Start Listening</button>
 
 
106
  </div>
107
  </div>
108
  <div class="col-md-6">
 
117
 
118
  <div class="audio-container">
119
  <p class="control-label mb-2">Audio Control</p>
120
+ <audio id="audioPlayer" controls=""></audio>
121
+ <div id="statusMessage" class="status-indicator text-center text-secondary">Error processing audio data. Please try again.</div>
122
  </div>
123
 
124
  <div class="response-container">
 
141
  <script>
142
  let mediaRecorder;
143
  let audioChunks = [];
144
+ let audioStream;
145
  const recordButton = document.getElementById("recordButton");
146
  const generateButton = document.getElementById("generateButton");
147
  const statusMessage = document.getElementById("statusMessage");
 
154
  recordButton.addEventListener("click", async () => {
155
  if (!mediaRecorder || mediaRecorder.state === "inactive") {
156
  try {
157
+ // Stop any existing stream tracks before requesting a new one
158
+ if (audioStream) {
159
+ audioStream.getTracks().forEach(track => track.stop());
160
+ }
161
+
162
+ audioStream = await navigator.mediaDevices.getUserMedia({ audio: true });
163
+ mediaRecorder = new MediaRecorder(audioStream, { mimeType: "audio/webm" });
164
 
165
  mediaRecorder.ondataavailable = event => audioChunks.push(event.data);
166
 
 
207
  console.error("Error:", error);
208
  statusMessage.textContent = "Error processing audio data. Please try again.";
209
  }
210
+
211
+ // Clean up the audio tracks after processing is complete
212
+ if (audioStream) {
213
+ audioStream.getTracks().forEach(track => track.stop());
214
+ }
215
  };
216
 
217
  audioChunks = [];
 
344
  return bufferArray;
345
  }
346
  </script>
347
+
348
+ </body></html>