Pull to refresh

Comments 12

В хроме что-то не воспроизводит речь — хомяк нямкает, а звука нет. :(
Периодически есть лаги в разных браузерах (не только Chrome): javascript отрабатывает как надо и хомяк начинает «говорить», но со стороны Flash что-то работает не так и звук не воспроизводится. Refresh страницы должен помочь.
C jRecorder что-то не все гладко.

Exceptions 1.

RangeError: Error #1125: Индекс NaN выходит за границы диапазона 0.
at org.as3wavsound::WavSoundChannel/buffer()
at WavSoundPlayer/onSamplesCallback()

Exceptions 2.

Error #2044: Необработанный ioError:. text=Error #2032: Ошибка потока. URL: googledrive.com/host/0B4Q3U97fHTqIVzhpb09XRTJ2enM/acceptfile.php?filename=hello.wav
at Main/finalize_recording()
at Main/jSendFileToServer()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at flash.external::ExternalInterface$/_callIn()
at Function/()
at flash.external::ExternalInterface$/_evalJS()
at flash.external::ExternalInterface$/call()
at Main/jStopRecording()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at flash.external::ExternalInterface$/_callIn()
at Function/()
at flash.external::ExternalInterface$/_evalJS()
at flash.external::ExternalInterface$/call()
at Main/updateMeter()

Exceptions 3.

Error: Error #2030: Обнаружен конец файла.
at flash.utils::ByteArray/readFloat()
at org.bytearray.micrecorder::MicRecorder/onSampleData()

К сожалению, я не специалист по Flash. Но судя по ошибке, могу предположить что функция ByteArray/readFloat() возвращает ровно 1 байт. Однако, код модификации звука, который я взял на сайте Adobe делает 2 чтения после проверки доступности байт в потоке:
while(event.data.bytesAvailable > 0)
 {
  _buffer.writeFloat(event.data.readFloat());
  _buffer.writeFloat(event.data.readFloat());
  ...

Таким образом, при нечетном количестве байт в потоке, возможен BufferOverflow. Я на всякий случай добавил доп. проверку.
На чистом JS есть возможность записать звук примеры есть на html5rocks
используя getUserMedia с WebAudioAPI, соответственно пока есть ограничение на кроссбраузерность и кроссплатформенность
запись можно делать с помощью скрипта recorder.js

Но по какой то непонятной мне причине так и не удалось заставить это работать на версиях Chrome от последней стабильной и вплоть до 27.0.1430.0 dev-m под Windows

запись видео кое как получилось (в.т.ч. на андроиде) но звука нет, не работает ни один пример который был дан для отображения работы с микрофоном
Есть одна хитрость, почему то гугл запрещает аудио до сих пор в getUserMedia. Нужно включить «Вход Web Audio» — Включает входящий аудиоканал на базе метода getUserMedia() и API Web Audio, в разделе about:flags, тогда звук будет записываться.
Linux Chrome 25.0.1364.152 включил WebAudioAPI, звук все равно не идет
завтра проверю на работе под Windows, но уверен все эти флаги уже выискал и включил
Под Linux не идет )) тут я не понял почему, а под windows вполне.
Все таки под Windows7 тоже что-то не идет звук никак.
Я проверял в FF 19.0.2. Работает. Но спасибо за инфо! К сожалению, можно сделать вывод, что стабильности подобных «шатких» конструкций добиться сложно!
Sign up to leave a comment.

Articles