%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.144.28.177 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 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, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/main/recorder/ |
Upload File : |
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; }