qa-prevention-gwj-vue/static/bi/js/ezuikit_v3.4/js/worker.js

36 lines
829 B
JavaScript

(function(){
'use strict';
var samplesMono;
var floatTo16BitPCM = function(input, output){
for(var i = 0; i < input.length; i++){
var s = Math.max(-1, Math.min(1, input[i]));
output[i] = (s < 0 ? s * 0x8000 : s * 0x7FFF);
}
};
var convertBuffer = function(arrayBuffer){
var data = new Float32Array(arrayBuffer);
var out = new Int16Array(arrayBuffer.length);
floatTo16BitPCM(data, out);
return out;
};
var encode = function(arrayBuffer){
samplesMono = convertBuffer(arrayBuffer);
self.postMessage({
cmd: 'pcm',
buf: samplesMono
});
};
self.onmessage = function(e){
switch(e.data.cmd){
case 'encode':
encode(e.data.buf);
break;
}
};
})();