2016-02-25 2 views
0

Je regarde certaines API qui sont destinées à être utilisées dans un navigateur Web. Ils nécessitent l'inclusion de leur code .js et vous présentent ensuite une API qui retourne l'audio. En les reformulant d'une manière plus générale, ces API retournent un flux d'octets (audio dans ce cas) que le navigateur joue.Puis-je utiliser certaines API JavaScript côté client côté serveur?

Des API de ce type peuvent-elles être utilisées dans les frameworks JavaScript côté serveur, par exemple. Node, où je fais l'appel API et capture les données binaires résultant dans une variable? Je ne suis pas sûr de savoir comment faire correspondre la sémantique de ce qui se passe dans le navigateur à une solution côté serveur.

Voici un exemple arbitraire http://responsivevoice.org/api/

Vous incluez leur Javascript dans votre page, puis appelez sampleLibrary.speak("hello world");. Cela entraîne un retour audio au navigateur qui est lu.

+0

Où est le code pour appeler l'API? Les questions doivent avoir le code –

+0

@JuanMendes J'ai mis à jour la question. – Robert

+0

Vous pouvez l'utiliser si vous trouvez ou écrivez une bibliothèque qui reproduit les fonctions du navigateur fournies par le JS que vous utilisez. – Quentin

Répondre

1

En général, de nombreux JavaScript créés pour le navigateur peuvent être exécutés, mais vous devez vous moquer de beaucoup de fonctionnalités du navigateur.

J'ai regardé la bibliothèque à laquelle vous étiez lié. Il l'a embelli et a apporté quelques modifications pour en faire un module de nœud. Ensuite, vous devez simuler navigator.userAgent, window et document.

Pour le document, la bibliothèque utilise addEventListener. Après avoir moqué ceux que je reçois RV: Voice synthesis not supported. La bibliothèque utilise Web Speech API à Window.speechSynthesis. Ce n'est pas possible de se moquer.

Il dispose cependant d'une fonctionnalité de secours, qui consiste à insérer les étiquettes AUDIO à createElement. Vous obtiendrez alors des URL pour les fichiers audio générés. Ensuite, vous pourriez être en mesure de télécharger ceux-ci et faire ce que vous vouliez faire sur votre serveur.

+0

Vous avez déjà créé un module de nœud? Sensationnel. Donc, si je vous comprends bien, l'implémentation native n'utilise pas la balise audio HTML 5, mais plutôt Web Speech API et Window.speechSynthesis comme vous l'avez dit. De plus, si je comprends bien, si le navigateur ne supporte pas Web Speech ou speechSynthesis, il rendra de façon dynamique un tag HTML 5

+1

@Robert: Oui. En utilisant 'createElement', puis appelez' load' et ensuite 'play'. – bolav