Как захватить звук из браузера?
-
25-09-2019 - |
Вопрос
Мой клиент должен позволить пользователю записывать сообщение из браузера, а затем экспортировать сообщение в качестве аудиофайла (например, WAV).
Как это лучше всего выполнено? Flash, Java, HTML5? Благодаря лучшему, я имею в виду то, что просто реализовать, а также широко поддерживается.
Каковы опыт людей используют HTML5?
Спасибо!
Решение
Flash - это один вариант, но вам нужен сервер потоковой передачи носителя (Adobe Media Server, Wowza, Red5). Нет возможности захватить и хранить аудио на Flash локально в файл.
Если вы готовы пойти с Java-апплетами, есть несколько решений. Все они требуют доступа к локальной файловой системе и попросят пользователям дополнительные разрешения. Например, попробуй http://www.javasonics.com/ или Google »Applet Record Audio.".
Обновлять: Поскольку flash 10.0 есть возможность использовать микрофон с SampledataEvent.sample_data. Это дает доступ к необработанным аудиоданным из микрофона. Смотрите этот проект для реализации: http://code.google.com/p/micrecorder/
Другие советы
Ну, я подозреваю, что такая особенность HTML5 была бы довольно нестандартной, а поддержка браузера будет сильно отличаться (со многими браузерами не включающимися).
Java не так популярна как вспышка, и есть много людей, у которых вообще нет JRE.
Так что все во всем, что я бы пошел на флэш-решение в этом случае. И, возможно, с защитой HTML5 для некоторых ограниченных случаев разрешается ресурсы.
Предполагая, что вы имеете в виду «экспортировать» на сервер, вот вот-флэш-решение с открытым исходным кодом, который не требует вспышки медиа-сервера:
https://code.google.com/p/wami-recorder/
Запись передается через HTTP POST в технологию Server Side по вашему выбору. В простейшем случае вы можете захватить и сохранить звук с 4 линиями PHP-кода:
<?
$content = file_get_contents('php://input');
$fh = fopen('output.wav', 'w') or die("can't open file");
fwrite($fh, $content);
fclose($fh);
?>
Что касается поддержки HTML5, следите за GetUsermedia ()