intégration de la détéction audio à l'interface

This commit is contained in:
Quentin Roussel
2023-03-26 23:48:17 +02:00
parent f978ed0a8b
commit 38c9e4e0ea
23 changed files with 74 additions and 40 deletions

View File

@@ -7,16 +7,21 @@ class AudioPage {
set enabled(isEnabled) {
this.isEnabled = isEnabled;
this.DOMElement.style.display = isEnabled ? "block" : "none";
document.getElementById("grade").innerHTML = "";
document.getElementById("audio_status").innerHTML = "Enregistrement...";
}
onRecordingDone() {
if(this.isEnabled) {
document.getElementById("audio_status").innerHTML = "Traitement...";
}
}
setGrade(grade) {
if(this.isEnabled) {
document.getElementById("grade").innerHTML = grade.toString();
document.getElementById("audio_status").innerHTML = grade;
}
}
reset() {
document.getElementById("grade").innerHTML = "";
document.getElementById("audio_status").innerHTML = "Enregistrement...";
}
}

View File

@@ -1,5 +1,5 @@
class WebsocketClient {
constructor(onNewEffects, onNewState, onNewGrade, onReset) {
constructor(onNewEffects, onNewState, onNewGrade, onReset, onRecordingDone) {
this.socket = new WebSocket("ws://localhost:5000");
this.socket.addEventListener("open", (event) => {
this.socket.send("connected");
@@ -13,10 +13,13 @@ class WebsocketClient {
}else if(msg.type == "state") {
onNewState(msg.state);
}else if(msg.type == "new_grade") {
onNewGrade(Number(msg.grade));
onNewGrade(msg.word);
}else if(msg.type == "reset") {
onReset();
}
else if(msg.type == "recording_done") {
onRecordingDone();
}
};
}
}

View File

@@ -21,6 +21,7 @@ class StateManager {
(state) => this.setState(state),
(grade) => this._audioPage.setGrade(grade),
() => this.reset(),
() => this._audioPage.onRecordingDone(),
);
this._sleepingPage.enabled = true;

View File

@@ -35,17 +35,15 @@
<div class="title">
<h1>Dites-nous en plus</h1>
</div>
<p>Donnez une note sur 10 au critère suivant</p>
<table>
<tr>
<th>Critère</td>
<th>Note / 10</td>
</tr>
<tr>
<td>Calme</td>
<td><span id="grade"></span>/10</td>
</tr>
</table>
<p>Comment avez vous trouvé l'exposition ... ?</p>
<p>Dites un mot parmis la liste suivante</p>
<ul>
<li>J'ai beaucoup aimé</li>
<li>génial</li>
<li>Ennuyant</li>
<li>Nul</li>
</ul>
<p>Mot détécté : <span id="audio_status"></span></p>
</div>
</div>
<div id="thank-you">