Update static/index.html
Browse files- static/index.html +13 -3
static/index.html
CHANGED
@@ -85,7 +85,6 @@
|
|
85 |
50% { transform: scale(1.05); }
|
86 |
100% { transform: scale(1); }
|
87 |
}
|
88 |
-
|
89 |
</style>
|
90 |
</head>
|
91 |
<body>
|
@@ -145,6 +144,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 +157,13 @@
|
|
157 |
recordButton.addEventListener("click", async () => {
|
158 |
if (!mediaRecorder || mediaRecorder.state === "inactive") {
|
159 |
try {
|
160 |
-
|
161 |
-
|
|
|
|
|
|
|
|
|
|
|
162 |
|
163 |
mediaRecorder.ondataavailable = event => audioChunks.push(event.data);
|
164 |
|
@@ -205,6 +210,11 @@
|
|
205 |
console.error("Error:", error);
|
206 |
statusMessage.textContent = "Error processing audio data. Please try again.";
|
207 |
}
|
|
|
|
|
|
|
|
|
|
|
208 |
};
|
209 |
|
210 |
audioChunks = [];
|
|
|
85 |
50% { transform: scale(1.05); }
|
86 |
100% { transform: scale(1); }
|
87 |
}
|
|
|
88 |
</style>
|
89 |
</head>
|
90 |
<body>
|
|
|
144 |
<script>
|
145 |
let mediaRecorder;
|
146 |
let audioChunks = [];
|
147 |
+
let audioStream;
|
148 |
const recordButton = document.getElementById("recordButton");
|
149 |
const generateButton = document.getElementById("generateButton");
|
150 |
const statusMessage = document.getElementById("statusMessage");
|
|
|
157 |
recordButton.addEventListener("click", async () => {
|
158 |
if (!mediaRecorder || mediaRecorder.state === "inactive") {
|
159 |
try {
|
160 |
+
// Stop any existing stream tracks before requesting a new one
|
161 |
+
if (audioStream) {
|
162 |
+
audioStream.getTracks().forEach(track => track.stop());
|
163 |
+
}
|
164 |
+
|
165 |
+
audioStream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
166 |
+
mediaRecorder = new MediaRecorder(audioStream, { mimeType: "audio/webm" });
|
167 |
|
168 |
mediaRecorder.ondataavailable = event => audioChunks.push(event.data);
|
169 |
|
|
|
210 |
console.error("Error:", error);
|
211 |
statusMessage.textContent = "Error processing audio data. Please try again.";
|
212 |
}
|
213 |
+
|
214 |
+
// Clean up the audio tracks after processing is complete
|
215 |
+
if (audioStream) {
|
216 |
+
audioStream.getTracks().forEach(track => track.stop());
|
217 |
+
}
|
218 |
};
|
219 |
|
220 |
audioChunks = [];
|