uawdijnntqw1x1x1
IP : 18.224.70.193
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
kirov.axolotls.ru
/
bitrix
/
js
/
main
/
recorder
/
encoder.js
/
/
var mp3Encoder; var mp3Buffer = []; onmessage = function(e) { switch (e.data.action) { case 'init': init(e.data); break; case 'start': start(); break; case 'record': record(e.data); break; case 'stop': stop(); break; } }; function init(data) { var channels = data.channels || 1; var sampleRate = data.sampleRate || 44100; var bitRate = data.bitRate || 128; if(data.type === 'audio/mp3') { importScripts('/bitrix/js/main/recorder/lame.min.js'); mp3Encoder = new lamejs.Mp3Encoder(channels, sampleRate, bitRate); } } function start() { mp3Buffer = []; } function record(data) { var buffer = floatTo16BitPCM(data.input); var chunk = mp3Encoder.encodeBuffer(buffer); mp3Buffer.push(chunk); } function stop() { mp3Buffer.push(mp3Encoder.flush); var resultBlob = new Blob(mp3Buffer, {type: 'audio/mpeg'}); postMessage({action: 'result', result: resultBlob}); mp3Buffer = []; } //todo: add dithering function floatTo16BitPCM(input) { var length = input.length; var result = new Int16Array(length); var value; for(var i = 0; i < length; i++) { if(input[i] > 1) value = 1; else if(input[i] < -1) value = -1; else value = input[i]; result[i] = (value > 0 ? value * 32767 : value * 32768); } return result; }
/var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/js/main/recorder/encoder.js