Как записать голос пользователя с помощью Javascript / PHP?

В настоящее время я пытаюсь создать тестовый сайт, который позволяет пользователям записывать голосовые заметки и сохранять их на свой счет. Каков наилучший способ сделать это, используя PHP или JavaScript?

Шаги, которые я ищу для этого процесса:

1) Пользователь, нажав кнопку записи. 2) Инициирование последовательности записи. 3) Остановка последовательности. 4) Именование файла и отправка его на сервер.

Мой основной запрос сосредоточен на втором шаге , где мне нужен какой-то механизм, который будет взаимодействовать с микрофоном пользователя для записи голоса. Я по-прежнему новичок в веб-разработчике, и я не знаю, как я могу использовать запись голоса с использованием JavaScript.

При поиске в Google я нашел несколько ссылок в StackOverflow, которые рассматривали подобные проблемы, но ответы не помогли. Множество решений указало на Flash, но я хотел бы как можно больше избежать этого. Поэтому мой вопрос сводится к «Можно ли записывать голос с использованием JavaScript? Если да, то как?»

Заранее спасибо.

HTML5 Audio API широко не поддерживается в браузерах, я думаю, что он работает в Chrome, и Firefox недавно добавил его в ночные часы … На этом этапе необходимы префиксы браузера, но общий API …

navigator.getUserMedia({audio: true}, function(stream) { /* do stuff */ }); 

Так что это будет webkitGetUserMedia для Chrome и mozGetUserMedia для Firefox.

Ваши более последовательные параметры прямо сейчас – через плагины браузера, такие как Flash или Java, или для создания настольного клиента, который пользователь должен будет установить.

Ресурсы, представляющие интерес для getUserMedia:

  • Введение в getUserMedia
  • getUserMedia добавлена ​​в Firefox nightlies
  • Аудио только проблемы с getUserMedia в Chromium

Следующий вопрос может помочь вам:

учебник по использованию Flash или Java-сервлета для загрузки данных микрофона из браузера на сервер?

Теперь вы можете записывать с микрофона, создавая звуковой график, который соединяет ваш локальный MediaStream с ScriptProcessingNode:

 navigator.webkitGetUserMedia({video: true, audio: true}, function(stream) { var audioContext = new webkitAudioContext, mediaStreamSource = context.createMediaStreamSource(stream), processor = context.createJavaScriptNode(4096, 2, 2); processor.onaudioprocess = function(e) { // Process the audio data found in e.inputBuffer }; mediaStreamSource.connect(processor); processor.connect(context.destination); }); 

(С использованием префиксов поставщика Chrome)

Вы можете подключить это к веб-узлам или даже к простому XHR, чтобы отправить куски на ваш сервер, который может обрабатывать его в аудиофайл. Вам нужно будет преобразовать каждый канал из

неперемещенный 32-разрядный линейный ИКМ IEEE с номинальным диапазоном -1 -> +1

в формат по вашему выбору.

Аналогичный пример записи звука, его кодирования в wav-файл и сохранения его (все клиентские) можно найти здесь:

https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC

Подробнее о AudioContext:

http://docs.webplatform.org/wiki/apis/webaudio/AudioContext

Пока не поступит аудиозапись HTML5, вам действительно нужно объединить решение, объединяющее Flash и мобильные устройства, загрузку файлов. На мобильных устройствах на экране загрузки файлов обычно есть аудио- или видеомагнитофон, поэтому пользователи могут записывать прямо со своего устройства.

Если устройство не имеет аудиозаписей при загрузке файла, вы должны использовать видеомагнитофон, а затем конвертировать видео в MP3 на сервер. Вот как мы это делаем на recordmp3online.com .