Re: [Sujet officiel] Plugin sonos
Publié : 07 janv. 2018, 20:22
Peux tu vérifier que tu es bien en php7 ? si ce n'est pas la cas il faut essayer d'installer le paquet dont je t'ai parlé pour ta version de php
jpcolin a écrit : ↑08 janv. 2018, 19:18voila problème mbstring réglé je pense.
maintenant j'ai une nouvelle erreur:
LE fichier .wav hest bien creeé, je sais le lire depuis mon app pc sonos, mais pourtant quand j'execute le scenario, in me dit accès refusé
------------------------------------
[2018-01-08 19:09:28][SCENARIO] Start : 'Scenario lance manuellement'.
[2018-01-08 19:09:28][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-01-08 19:09:28][SCENARIO] Exécution de la commande [Kitchen][Kitchen sonos][Dire] avec comme option(s) :
Array
(
[background] => 0
[title] => 150
[message] => je teste sonos
)
[2018-01-08 19:09:32][SCENARIO] UPnPError: 701
[2018-01-08 19:09:32][SCENARIO] Fin correcte du scenario
Quand je vais dans l'appli Sonos sur le PC et que je vais dans le dossier renseigné dans le plugin Sonos, j'ai accès, je peux lire un fichier audio que j'ai placé dedans. donc sonos à bien accès à ce dossier.
quelqu'un à une idée?
C'est vraiment pas facile de faire parler ce sonos!
Non, c’est vrai elle est horrible
Il n'y a rien de galère à utiliser le plugin TTS WebServer mais puisqu'il sert d'intermédiaire entre les Sonos et le plugin Sonos il faut que tout fonctionne pour que ça se passe bien... et puis ça en vaut la chandelle !Kermitlagrenouille a écrit : ↑09 janv. 2018, 18:51Non, c’est vrai elle est horrible
Maintenant que t’as enfin réussi avec Sonos, t’as plus qu’à passer à TWS, et re-galères ^^
Curieux de nature, j'aimerais savoir par quel site tu passe pour le faire ?Kermitlagrenouille a écrit : ↑10 janv. 2018, 12:48Oui ça marche très bien cette technique
Je m’en sers aussi pour envoyer une petite musique avant chaque message
Ai-je bien compris que tout TTS webserver il faut un tel android pour generer les voix?Masterfion a écrit : ↑11 janv. 2018, 10:53Il n'y a rien de galère à utiliser le plugin TTS WebServer mais puisqu'il sert d'intermédiaire entre les Sonos et le plugin Sonos il faut que tout fonctionne pour que ça se passe bien... et puis ça en vaut la chandelle !Kermitlagrenouille a écrit : ↑09 janv. 2018, 18:51Non, c’est vrai elle est horrible
Maintenant que t’as enfin réussi avec Sonos, t’as plus qu’à passer à TWS, et re-galères ^^
Bonjour, ça m'interesse aussi.Sartog a écrit : ↑11 janv. 2018, 12:01Curieux de nature, j'aimerais savoir par quel site tu passe pour le faire ?Kermitlagrenouille a écrit : ↑10 janv. 2018, 12:48Oui ça marche très bien cette technique
Je m’en sers aussi pour envoyer une petite musique avant chaque message
(Et puis j'ai perdu le lien vers celui que j'utilisais qui, de toute façon, est devenu payant).
Code : Tout sélectionner
/**
* Get Sonos Favorites
* @param {Function} callback (err, result) result - {returned: {String}, total: {String}, items:[{title:{String}, uri: {String}}]}
*/
Sonos.prototype.getFavorites = function (callback) {
var self = this
var defaultOptions = {
BrowseFlag: 'BrowseDirectChildren',
Filter: '*',
StartingIndex: '0',
RequestedCount: '100',
SortCriteria: ''
}
var opts = {
ObjectID: 'FV:2'
}
opts = _.extend(defaultOptions, opts)
var contentDirectory = new Services.ContentDirectory(this.host, this.port)
return contentDirectory.Browse(opts, function (err, data) {
if (err) return callback(err)
return (new xml2js.Parser()).parseString(data.Result, function (err, didl) {
if (err) return callback(err, data)
var items = []
if ((!didl) || (!didl['DIDL-Lite'])) {
return callback(new Error('Cannot parse DIDTL result'), data)
}
var resultcontainer = didl['DIDL-Lite'].item
if (!Array.isArray(resultcontainer)) {
return callback(new Error('Cannot parse DIDTL result'), data)
}
_.each(resultcontainer, function (item) {
var albumArtURL = null
if (Array.isArray(item['upnp:albumArtURI'])) {
if (item['upnp:albumArtURI'][0].indexOf('http') !== -1) {
albumArtURL = item['upnp:albumArtURI'][0]
} else {
albumArtURL = 'http://' + self.host + ':' + self.port + item['upnp:albumArtURI'][0]
}
}
items.push({
'title': Array.isArray(item['dc:title']) ? item['dc:title'][0] : null,
'artist': Array.isArray(item['dc:creator']) ? item['dc:creator'][0] : null,
'albumArtURL': albumArtURL,
'album': Array.isArray(item['upnp:album']) ? item['upnp:album'][0] : null,
'uri': Array.isArray(item.res) ? item.res[0]._ : null
})
})
var result = {
returned: data.NumberReturned,
total: data.TotalMatches,
items: items
}
return callback(null, result)
})
})
}