Как захватить звук из браузера? - PullRequest
0 голосов
/ 22 октября 2010

Мой клиент должен позволить пользователю записать сообщение из браузера, а затем экспортировать сообщение в виде аудиофайла (например, WAV).

Как это лучше всего сделать? Flash, Java, HTML5? Под лучшим я подразумеваю нечто простое в реализации и широко поддерживаемое.

Как люди воспринимают HTML5?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 23 октября 2010

Flash - один из вариантов, но вам необходим сервер потоковой передачи мультимедиа (Adobe Media Server, Wowza, Red5).Нет возможности записывать и сохранять аудио на Flash локально в файл.

Если вы готовы использовать апплеты Java, существует несколько решений.Все они требуют доступа к локальной файловой системе и будут запрашивать у пользователей дополнительные разрешения.Например, попробуйте http://www.javasonics.com/ или Google " запись звука апплета ".

Обновление: , поскольку Flash 10.0 позволяет использовать микрофон с SampleDataEvent.SAMPLE_DATA,Это дает доступ к необработанным аудиоданным с микрофона.Смотрите этот проект для реализации: http://code.google.com/p/micrecorder/

1 голос
/ 23 октября 2010

Что ж, я подозреваю, что такая особенность HTML5 была бы довольно нестандартной, а поддержка браузеров сильно отличалась бы (многие браузеры не включали ни одну).

Java не так популярна, как flash, и есть много людей, у которых вообще нет JRE.

Таким образом, в общем, я бы пошел на решение Flash в этом случае. И, возможно, в некоторых ограниченных случаях используется запасной вариант HTML5, если позволят ресурсы.

0 голосов
/ 28 ноября 2011

Предполагая, что вы имеете в виду «экспорт» на сервер, вот Flash-решение с открытым исходным кодом, для которого НЕ требуется флэш-медиа-сервер:

https://code.google.com/p/wami-recorder/

Запись передается черезHTTP-публикация на серверной технологии по вашему выбору.В простейшем случае вы можете захватывать и сохранять аудио с помощью 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 ()

...