Как записать звук из веб-приложения на основе Javascript?
Я пытаюсь написать веб-приложение, которое записывает файлы WAV (например, с микрофона пользователя). Я знаю, что один Javascript не может этого сделать, но меня интересует наименее запатентованный способ дополнить мой Javascript. Мои целевые браузеры - Firefox для ПК и Mac (поэтому не ActiveX).
Я понял, что это можно сделать с помощью Flash (но не в виде файла в формате WAV). Я понял, что это можно сделать с помощью Java (но не без подписи кода). Это единственные варианты?
Я хотел бы записать файл в формате WAV, потому что целью веб-приложения будет собрать библиотеку коротких звуковых фрагментов хорошего качества. Я предполагаю, что загрузка будет 50 МБ, что хорошо стоит качества. Приложение будет использоваться только в нашей интрасети.
ОБНОВЛЕНИЕ: теперь есть альтернативное решение благодаря будущему Аудио API JetPack: См. https://wiki.mozilla.org/Labs/Jetpack/JEP/18
7 ответов
Flash требует от вас использования медиа-сервера (примечание: я все еще использую Flash MX, но быстрый поиск в Google вызывает документацию для Flash CS3, которая, кажется, совпадает - обратите внимание, что Flash CS4 скоро выйдет, может измениться). Macromedia / Adobe стремятся выпороть вам свой медиасервер, но проект с открытым исходным кодом Red5 может подойти для вашего проекта:
Я думаю, что Java будет более подходящим. Я видел апплет, который может делать то, что вы хотите, в Moodle (виртуальная среда обучения с открытым исходным кодом):
(сайт необходим для членства, но открыт для Google, поэтому ссылка идет на страницу кеша Google).
Это старая ветка, но проблема остается актуальной. Следует отметить, что существует способ записи звука на сервер во Flash без фирменного бэкенда. Вот пример проекта, с которого можно начать:
Ваши единственные варианты: Flash, Java, ActiveX или написание собственного расширения Firefox. Flash, вероятно, ваш лучший вариант - вы можете написать или использовать существующее приложение Flash, чтобы сделать запись и сохранить почти все остальное в чистом Javascript.
Почему вы хотите файл WAV? Если вы планируете обрабатывать фактические биты формы сигнала на клиенте, то это, вероятно, плохая идея; клиент может быть очень медленным, и вы не сможете по-настоящему манипулировать файлом. Если вы хотите отправить звук обратно на сервер, то гораздо лучше отправить сжатый файл, а затем распаковать его на сервере.
Flash будет вашим лучшим решением.
Надеюсь, это поможет: http://www.kirupa.com/forum/showthread.php?t=17331
Да, я верю, что Flash или Java-апплет - единственный способ сделать это. Поскольку вы не можете взаимодействовать с микрофоном, вы должны использовать какой-то плагин для браузера, это единственный способ использовать микрофон. Я не знаю ни о каком другом плагине, который обеспечил бы эти функции. Быстрый поиск в Google не выявил дальнейших возможностей. Я думаю, что самое простое будет с Flash.
Другое решение, если вы не возражаете против того, чтобы ваши пользователи устанавливали плагин, - это использование плагина Runtime Revolution RevWeb, который поддерживает запись звука в браузере (и реализовать его тривиально, я сделал тестовый апплет, чтобы подтвердить это примерно через 10 минут). http://revweb.runrev.com/
Вы можете загрузить Real Producer Basic, который можно бесплатно загрузить здесь ( http://forms.real.com/rnforms/products/tools/producerbasic/), и вставить его в качестве объекта activeX, поскольку он находится в вашей интрасети. Flash будет встраиваться одинаково, он работает на всех офисных рабочих станциях, но, поскольку это ваша интрасеть, вы можете установить ее на все машины с AD. Реальные аудио файлы очень малы по сравнению с wav и звучат великолепно. Вот ссылка на практическое руководство по Real Sudio ActiveX. http://service.real.com/help/library/guides/activex/producerx.html