Code d'origine tiré de https://code.google.com/p/wami-recorder/ (sous licence MIT)
Mises à jour de code, ajustements pour jQuery et quelques correctifs par Ignacio Santolin
Au moment d'écrire ces lignes, la plupart des navigateurs ne prennent toujours pas en charge GetUserMedia de WebBrTC ()
http://caniuse.com/#search=stream
qui promet de donner aux développeurs Web un accès au microphone via JavaScript. Ce projet réalise la meilleure chose à faire pour les navigateurs qui prennent en charge Flash. À l'aide de l'enregistreur WAMI, vous pouvez collecter l'audio sur votre serveur sans installer de logiciel de serveur multimédia propriétaire.
L'enregistreur WAMI utilise une application flash légère pour expédier l'audio du client à serveur via une publication HTTP standard. Outre les paramètres de sécurité pour permettre l'accès aux microphones, l'interface entière peut être construite en HTML et jQuery.
L'application Flash expose la plupart de ses paramètres et fonctionnalités importants au JavaScript.
Wami.startRecording(myRecordURL);
Wami.stopRecording();
Wami.startPlaying(anyWavURL);
Wami.stopPlaying();
Vous pouvez utiliser la bibliothèque SWFObject très respectée pour intégrer l'application Flash, puis y accéder de la même manière que notre exemple de code. Jetez un œil à notre page Quirks pour vous familiariser avec les idiosyncrasies de Flash et JavaScript sur différents navigateurs et systèmes d'exploitation.
Si vous souhaitez modifier le contenu Flash, vous pouvez télécharger le SDK Flex gratuit et le compiler à partir de la ligne de commande. Pour un IDE à part entière, vos options gratuites sont plus limitées. Pour une utilisation académique, comme la collecte de l'audio pour une étude via Amazon Mechanical Turk, vous pouvez vous inscrire à une licence GRATUIT de Builder Adobe Flash.
Si vous souhaitez collecter l'audio auprès du navigateur, il n'y a pas de besoin de contourner le besoin d'héberger votre propre serveur. Cependant, une fonctionnalité clé de ce projet est qu'il n'est pas nécessaire de configurer un serveur de médias flash entier juste pour collecter l'audio sur le Web. Vous pouvez choisir la technologie côté serveur que vous préférez. Vous pouvez, par exemple, héberger ce simple script PHP sur Apache2:
Exemple / serveur / php / writeAudio.php
Notez que ce code prend éventuellement un paramètre de requête URL pour spécifier un nom de fichier. Avec les autorisations appropriées, le code PHP rédigera un fichier avec ce NAM sur le disque. Vous pouvez passer un nom de fichier différent chaque fois que vous enregistrez pour distinguer les utilisateurs individuels, les sessions et les énoncés. Vous souhaiterez peut-être utiliser des nombres aléatoires générés dans JavaScript et des cookies stockés dans le navigateur pour suivre les utilisateurs à travers les recharges du navigateur et pour nommer leurs fichiers correspondants. Il convient de noter que l'exemple ci-dessus souffre de problèmes de sécurité et doit probablement être modifié pour le déploiement réel.
Wami.startRecording('http://localhost/test.php?name=USER.SESSION.UTTERANCE.wav');
Une légère complication se produit si l'URL que vous utilisez pour la lecture ou l'enregistrement ne pointe pas vers le même hôte qui sert le fichier SWF. Dans ce cas, vous devrez servir un Crossdomain.xml à la racine de l'hôte à partir duquel l'audio est servi ou enregistré.