2013-05-29 2 views
13

Итак, у меня есть этот проект HTML5, над которым я работаю, где я конвертирую приложение iOS в веб-интерфейс. Сопровождающая часть создания контента приложения - это аудиозапись, которую я пытаюсь воспроизвести на JavaScript без использования плагинов; до сих пор я смог записывать аудио из getUserMedia() и превращать его в WAV благодаря Recorder.js.Кодирование звука из getUserMedia() в .OGG в JavaScript

Теперь, однако, я немного потерян. В настоящее время у меня есть два отдельных вида: один для записи контента и один для воспроизведения его, но я не знаю, как получить экспортированную аудио формами Recorder.js в мою полезную нагрузку JSON для воспроизведения (я бы хотел, чтобы не форсировать сервер загрузка или загрузка клиента).

Я думаю, что мой конкретный вопрос: как я могу взять объект blob (что-то, о чем я почти ничего не знаю), сделанный Recorder.js, и превратить его в необработанные данные или как-то отправить файл через JSON?

UPDATE: Я решил попробовать и использовать инструмент speex.js (https://github.com/jpemartins/speex.js) для кодирования .OGG (намного меньше, чем .WAV). Однако я не уверен, как его использовать; демонстрационная страница, похоже, не работает для меня, и попытка вызвать функцию .encode() объекта Speex, похоже, фактически не кодирует данные, я получаю нули в полях объектов. Кто-нибудь знает какие-либо ресурсы, где я могу узнать, как использовать этот тип инструмента?

+0

Я также пытаюсь установить что-то с помощью getUsetMedia, и я попробовал несколько учебных пособий, но я все еще иногда бывает сложно. Что вы подразумеваете под полезной нагрузкой JSON для воспроизведения? У вас есть тег '

+0

И если вы хотите преобразовать Blob в текст, вы можете взглянуть на [FileReader] (https://developer.mozilla.org/en-US/docs/Web/API/FileReader?redirectlocale=en-US&redirectslug = DOM% 2FFileReader # readAsText% 28% 29) объект. Методы этого берут Blob как аргумент и «конвертируют» его в текст, который я думаю. Но я не уверен, как использовать его в точности или если он даже делает то, что я думаю. У меня не было возможности еще раз взглянуть на него. – basilikum

+0

Спасибо, я просто смотрел на FileReader. То, что я подразумевал под «необработанными данными», было фактическими данными, содержащимися в файле .WAV, экспортированном рекордером; так как это в конечном итоге может быть отправлено между iPad и браузером, возможность отправки файла .WAV будет очень полезной. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как отправлять фактические данные файла .WAV, потому что у меня есть только объект blob с типом и длиной, без видимых данных. – twchapman

ответ

0

Существует библиотека (лицензия MIT), которая должна работать, я считаю, что я видел, что эта точная библиотека используется для сохранения ogg-файлов из аудиопотока getUserMedia на веб-сайте недавно. Я смутно помнил имя библиотеки, но я думаю, что это одна:

https://github.com/streamproc/MediaStreamRecorder/blob/master/AudioStreamRecorder/MediaRecorder.js

Весь проект на GitHub: https://github.com/streamproc/MediaStreamRecorder/

Так как кажется, так трудно достичь этого, возможно, по крайней мере, стоит взглянуть на понимание понятий, но я бы сказал, что это довольно продвинутый javascript, с которым мы имеем дело здесь ...

+1

На самом деле эта библиотека не кодирует файл Ogg, justs записывает волну и использует тип mg 0gg. Для кодирования файла ogg лучшим решением является использование https://www.webrtc-experiment.com/ffmpeg/wav-to-ogg.html – Lelis718

Смежные вопросы