Исходный код, взятый с https://code.google.com/p/wami-recorder/ (по лицензии MIT)
Обновления кода, настройки для jQuery и некоторые исправления Ignacio Santolin
На момент написания этой статьи большинство браузеров по -прежнему не поддерживают Getusermedia Webrtc ()
http://caniuse.com/#search=stream
который обещает предоставить веб -разработчикам доступ к микрофону через JavaScript. Этот проект достигает следующей лучшей вещи для браузеров, которые поддерживают Flash. Используя рекордер WAMI, вы можете собирать аудио на своем сервере без установки какого -либо проприетарного программного обеспечения для медиа -сервера.
В рекордере WAMI используется легкое приложение Flash для доставки звука из клиента на сервер через стандартную HTTP-сообщение. Помимо настроек безопасности, позволяющих добывать микрофон, весь интерфейс может быть построен в HTML и jQuery.
Приложение Flash разоблачает большую часть своих важных параметров и функциональности JavaScript.
Wami.startRecording(myRecordURL);
Wami.stopRecording();
Wami.startPlaying(anyWavURL);
Wami.stopPlaying();
Вы можете использовать уважаемую библиотеку SWFOBject для внедрения приложения Flash, а затем получить доступ к нему так же, как и наш пример кода. Взгляните на нашу страницу причуды, чтобы познакомиться с идиосинкрарами Flash и JavaScript в разных браузерах и операционных системах.
Если вы хотите изменить контент Flash, вы можете скачать бесплатный гибкий SDK и собрать его из командной строки. Для полноценной IDE ваши бесплатные варианты более ограничены. Для академического использования, такого как сбор аудио для обучения через Amazon Mechanical Turk, вы можете зарегистрироваться на бесплатную лицензию Adobe Adobe Flash Builder.
Если вы хотите собрать звук из браузера, нет необходимости размещать свой собственный сервер. Тем не менее, ключевой функцией этого проекта является то, что нет необходимости настраивать весь сервер Flash Media только для сбора аудио из Интернета. Вы можете выбрать любую технологию на стороне сервера, которую вы предпочитаете. Вы можете, например, разместить этот простой скрипт PHP на Apache2:
Пример/Сервер/PHP/writeaudio.php
Обратите внимание, что этот код необязательно принимает параметр запроса URL, чтобы указать имя файла. С соответствующими разрешениями код PHP напишет файл с этим NAM на диск. Вы можете передавать другое имя файла каждый раз, когда вы записываете, чтобы различать отдельных пользователей, сеансы и высказывания. Возможно, вы захотите использовать случайные числа, сгенерированные в JavaScript и файлах cookie, хранящихся в браузере, для отслеживания пользователей через перезагрузки браузера и назвать соответствующие файлы. Следует отметить, что приведенный выше пример страдает от проблем безопасности и, вероятно, должен быть изменен для фактического развертывания.
Wami.startRecording('http://localhost/test.php?name=USER.SESSION.UTTERANCE.wav');
Небольшое осложнение происходит, если URL, который вы используете для игры или записи, не указывает на тот же хост, который обслуживает файл SWF. В этом случае вам нужно будет обслуживать CrossDomain.xml в корне хоста, из которого аудио обслуживается или записан.