BrainBlast/soundplayer-mqtt/soundplayer.js
2024-04-01 14:23:37 +00:00

54 lines
1.6 KiB
JavaScript

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);
});