changed for decoder to work with Uint8Array in addFragment method
This commit is contained in:
parent
df77690724
commit
7de90304e4
3 changed files with 19 additions and 27 deletions
24
index.html
24
index.html
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue