changed for decoder to work with Uint8Array in addFragment method

This commit is contained in:
Blue 2019-01-24 19:00:15 +03:00
parent df77690724
commit 7de90304e4
3 changed files with 19 additions and 27 deletions

View file

@ -12,14 +12,13 @@
<script src="wrapper.js"></script>
<input type="file" id="file" name="file" />
<script>
var minPortion = 20480;
var minPortion = 4096;
var maxPortion = 40960;
var time = 0;
var ctx = new AudioContext();
ctx.suspend();
var decoder;
var fragments = [];
var noize = [];
var decoding = false;
function onChange(e) {
var file = e.target.files[0];
@ -51,21 +50,20 @@
setTimeout(schedule, Math.floor(audio.duration * 200));
decoding = true;
} else {
//decoder.delete();
decoder.delete();
}
} else {
//decoder.delete();
decoder.delete();
}
}
function scheduleData() {
if (fragments.length) {
var frag = fragments.shift();
decoder.addFragment(frag.ptr, frag.length);
decoder.addFragment(frag);
if (fragments.length) {
setTimeout(scheduleData, 50);
setTimeout(scheduleData, 100);
}
if (!decoding) {
@ -80,20 +78,10 @@
while (shoved !== src.length) {
var ps = Math.min(Math.floor(Math.random() * (maxPortion - minPortion) + minPortion), src.length - shoved);
var ptr = Module._malloc(ps);
var arr = new Uint8Array(Module.HEAPU8.buffer, ptr, ps);
var portion = new Uint8Array(buffer, shoved, ps)
arr.set(portion, 0);
shoved += ps;
fragments.push({
ptr: ptr,
length: ps
});
noize.push(Module._malloc(256));
fragments.push(portion);
}
}