Tracking de l'application VNode (moteur du jeu, services, broker.. etc
This commit is contained in:
54
VNode/soundplayer-mqtt/soundplayer.js
Normal file
54
VNode/soundplayer-mqtt/soundplayer.js
Normal file
@@ -0,0 +1,54 @@
|
||||
const config = require('./config')
|
||||
const player = require('play-sound')();
|
||||
const mqtt = require('mqtt')
|
||||
|
||||
// Créer une instance de client MQTT
|
||||
const client = mqtt.connect(config.mqttBrokerUrl);
|
||||
|
||||
|
||||
const messages_sounds_maps = {
|
||||
'success': "./assets/sounds/success.mp3",
|
||||
'fail': "./assets/sounds/error.mp3",
|
||||
'timer': "./assets/sounds/timer.mp3",
|
||||
'bell': "/home/lol/Src/fablab/brain-blast-services/src/assets/sounds/coin.wav",
|
||||
'applause': "./assets/sound/clap.mp3"
|
||||
}
|
||||
|
||||
// Gérer les événements de connexion
|
||||
client.on('connect', function () {
|
||||
console.log('Connecté au broker MQTT')
|
||||
|
||||
// S'abonner à un topic
|
||||
client.subscribe('/sound/playsound', function (err) {
|
||||
if (err) {
|
||||
console.error('Erreur lors de la souscription au topic', err)
|
||||
} else {
|
||||
console.log('Souscription au topic réussie')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Gérer les messages entrants
|
||||
client.on('message', function (topic, message) {
|
||||
let obj = JSON.parse(message)
|
||||
const audioFile = messages_sounds_maps[obj]
|
||||
console.log('Message reçu sur le topic', topic, ':', obj)
|
||||
console.log('Je vais lire le fichier : ', audioFile)
|
||||
if (audioFile) {
|
||||
// Jouer le fichier audio correspondant au message reçu
|
||||
player.play(audioFile, function(err){
|
||||
if (err) {
|
||||
console.error('Erreur lors de la lecture du fichier audio', err);
|
||||
} else {
|
||||
console.log('Fichier audio lu avec succès');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.warn('Aucun fichier audio correspondant au message reçu');
|
||||
}
|
||||
});
|
||||
|
||||
// Gérer les erreurs de connexion
|
||||
client.on('error', function (error) {
|
||||
console.error('Erreur de connexion au broker MQTT', error);
|
||||
});
|
||||
Reference in New Issue
Block a user