Как записывать аудио на веб-странице (iOS, Android, ПК /Mac ) - без вспышки
У меня есть требование разрешить пользователю записывать аудиофайл с помощью микрофона, но он должен работать без вспышки, поскольку он должен работать на iOS (мобильном сафари), в браузере Android или в Chrome, и на современном браузере на PC/Mac.
Есть ли простой, простой метод HTML5 для записи аудио и публикации на сервер? Я ничего не смог найти.
Ответы
Ответ 1
Вы можете использовать HTML5 API WebAudio.
Введение в аудио и видео захват Захват аудио и видео в HTML5
Хорошая библиотека для записи звука с образцами Recorder.js
Полный и рабочий пример с использованием Recorder.js Как записывать аудио в Chrome с помощью собственных API HTML5
Другие демонстрации API WebAudio Демо-версии и библиотеки HTML5 Web Audio API
Поддерживаемые браузеры Могу ли я использовать API веб-аудио?
Что касается отправки данных на другой сервер, используя Recorder.js, вы можете получить звуковой буфер, тогда вы можете использовать XMLHttpRequest для POST массива или буфера для целевого сервера напрямую или кодироваться как base64.
MDN: Отправка и получение двоичных данных
Html5Rocks: Новый трюк XMLHttpRequest2, отправка данных
Ответ 2
Профессионально говоря, я бы сказал, нет, есть аудио API для HTML5, но их реализация в разных браузерах сейчас меняется. Если вы делаете это для технической демонстрации сорта, то этого может быть достаточно, но в противном случае вам может понадобиться вернуться к другим технологиям, таким как flash и/или родные приложения, для получения более надежных результатов.
Ответ 3
getUserMedia()
теперь широко поддерживается на мобильных устройствах:
и рабочий стол:
- Сафари 11
- Хром
- Fire Fox
- Край 12
- опера
После получения разрешения на веб-камеру/микрофон и вы можете получить данные микрофона:
Вот демо, которое я сделал (живое демо, источник на GitHub), в котором используется Matt Diamond Recorder.js для записи звука (pcm в.wav файлах), работающего в Safari на iOS 11. Щелчок "Запись" предлагает пользователю разрешить доступ к микрофону:
![Clicking Record prompts the user to allow microphone access]()