Código original retirado de https://code.google.com/p/wami-recorder/ (sob licença do MIT)
Atualizações de código, ajustes para jQuery e algumas correções de Ignacio Santolin
Até o momento em que este artigo foi escrito, a maioria dos navegadores ainda não suporta getusermedia do WebRTC ()
http://caniuse.com/#search=stream
que promete dar aos desenvolvedores da Web acesso ao microfone via JavaScript. Este projeto alcança a próxima melhor coisa para os navegadores que suportam o flash. Usando o gravador WAMI, você pode coletar áudio no seu servidor sem instalar nenhum software proprietário de servidor de mídia.
O gravador WAMI usa um aplicativo flash leve para enviar áudio do cliente para o servidor por meio de uma postagem HTTP padrão. Além das configurações de segurança para permitir o acesso ao microfone, toda a interface pode ser construída em HTML e JQuery.
O aplicativo Flash expõe a maior parte de seus parâmetros e funcionalidade importantes ao JavaScript.
Wami.startRecording(myRecordURL);
Wami.stopRecording();
Wami.startPlaying(anyWavURL);
Wami.stopPlaying();
Você pode usar a respeitada biblioteca Swfobject para incorporar o aplicativo Flash e depois acessá-lo da mesma maneira que nosso código de exemplo. Dê uma olhada na nossa página de peculiaridades para se familiarizar com as idiossincrasias de Flash e JavaScript em diferentes navegadores e sistemas operacionais.
Se você deseja modificar o conteúdo flash, pode baixar o Flex SDK gratuito e compilá -lo na linha de comando. Para um IDE completo, suas opções gratuitas são mais limitadas. Para uso acadêmico, como a coleta de áudio para um estudo via Amazon Mechanical Turk, você pode se registrar para uma licença educacional do Adobe Flash Builder.
Se você deseja coletar áudio no navegador, não há como contornar a necessidade de hospedar seu próprio servidor. No entanto, um recurso essencial deste projeto é que não há necessidade de configurar um servidor de mídia flash inteiro apenas para coletar áudio na web. Você pode escolher qualquer tecnologia do lado do servidor que preferir. Você pode, por exemplo, hospedar este script PHP simples no Apache2:
exemplo/servidor/php/writeaudio.php
Observe que este código opcionalmente pega um parâmetro de consulta URL para especificar um nome de arquivo. Com as permissões apropriadas, o código PHP gravará um arquivo com este NAM no disco. Você pode passar um nome de arquivo diferente sempre que gravar para distinguir entre usuários, sessões e enunciados individuais. Você pode usar números aleatórios gerados em JavaScript e cookies armazenados no navegador para rastrear usuários nos recarregamentos do navegador e para nomear seus arquivos correspondentes. Deve -se notar que o exemplo acima sofre de problemas de segurança e provavelmente deve ser modificado para implantação real.
Wami.startRecording('http://localhost/test.php?name=USER.SESSION.UTTERANCE.wav');
Uma ligeira complicação ocorre se o URL que você usa para reproduzir ou gravar não apontar para o mesmo host que serve o arquivo SWF. Nesse caso, você precisará servir um crossDomain.xml na raiz do host a partir do qual o áudio é servido ou gravado.