Open tchex opened 10 years ago
Bon, qui se dévoue pour un essai gratuit sur napster^^ ? Moi je ne file pas ma CB ! Edit: Je viens d'effectuer un test avec une playlist gg music, ca marche nickel. Si c'est le mix j'ai de la chance il reprends une nouvelle chanson, si c'est une playlist à moi il continu là ou il était arrêté.
Je vais déjà réessayer avec un mp3 local, une playlist locale, une radio en streaming pour voir ce que ça donne. Je vous dis rapidement.
Bonjour,
Je me suis permis de recoder la fonction callBackToSonos car elle ne fonctionnait pas correctement chez moi.
Pouvez-vous tester de votre côté ? merci
function callBackToSonos(message, lieu) {
console.log('CallBack To Sonos '+lieu+' requested : '+message);
// on genere le tts en wav
var exec = require('child_process').exec;
child = exec('cd plugins/sonos & ttstowav.vbs "'+message.replace(/[^a-zA-Z0-9éçè@êàâû€$£ù \.,()!:;'#-_^%*]/g, "")+'"',
function (error, stdout, stderr) {
if (error !== null) {
console.log('exec error: ' + error);
}
else {
var wavefile = 'http://'+configSarah.http.ip+':'+configSarah.http.port+'/assets/sonos/tempvoice.wav'
getTopology(function(){
// on récupère le volume actuel
getVolume(function(volumeinit) {
// On récupère le statut de lecture du sonos
GetTransportStatus (function(statusbefore) {
console.log('StatusBefore : '+statusbefore);
GetMediaInfo(function(media) {
GetInfosPosition(function(position) {
//console.log('trackuri : '+position.trackuri);
//console.log('tracknumber : '+position.tracknumber);
//console.log('trackreltime : '+position.reltime);
Pause(function () {
setVolume(configSonosPerso.volumeAnnonce, function () {
if(position.trackuri.match(new RegExp('x-file-cifs://(.*?)')) !=null || position.trackuri.match(new RegExp('npsdy:(.*?)')) !=null) {
// mp3 file ou steaming Napster (npsdy)
// ajoute le fichier wav à la fin de la liste de lecture
AddURIToQueue(wavefile,function(wavetracknumber) {
// va a la fin de la liste de lecture
Seek('TRACK_NR', wavetracknumber, function() {
// lis la piste (le fichier wav)
Play(function() {
//attend la fin de la lecture du fichier wav
waitTheEndPlay(function() {
setVolume(volumeinit, function () {
// retourne sur la piste précedement lue
Seek('TRACK_NR', position.tracknumber, function() {
// retourne à la position dans la piste précédement lue
Seek('REL_TIME', position.reltime, function() {
// retire le fichier wav de la liste de lecture
RemoveTrackFromQueue(wavetracknumber, function() {
// relance (ou pas) la lecture selon le statut d'origine
if (statusbefore != 'STOPPED' && statusbefore != 'PAUSED_PLAYBACK') {
Play(function() {
console.log('CallBack To Sonos ended - I put the music back on .. (mp3 or streaming)');
return;
});
}
else {
console.log('CallBack To Sonos ended - I keep music paused .. (mp3 or streaming)');
return;
}
});
});
});
});
});
});
});
});
}
else {
//It's a radio / or TV (playbar) / or nothing
SetQueue(wavefile,function() {
Play(function() {
waitTheEndPlay(function() {
setVolume(volumeinit, function () {
SetQueue(position.trackuri,function() {
if (statusbefore != 'STOPPED' && statusbefore != 'PAUSED_PLAYBACK') {
Play(function() {
console.log(''CallBack To Sonos ended - I put the music back on .. (radio)'');
return;
});
}
else {
console.log('CallBack To Sonos ended - I keep music paused .. (radio)');
return;
}
});
});
});
});
});
}
});
});
});
});
});
});
});
}
});
}
Bonjour, Je rencontre un problème avec les playlists : Lorsque une playlist (de musiques en streaming via napster dans mon cas) est en cours (en lecture ou en pause) et que je demande une info à Sarah :
En parallèle du plugin SONOS SARAH j'utilise un script php pour faire du TTS sur Sonos. Il fonctionne bien, donc si ça peut aider il est là
et plus précisément la fonction playTTS
En tous cas chapeau pour votre travail ! c'est vraiment génial de pouvoir contrôler sonos avec la voix et faire parler sarah sur sonos !