<!doctype html>
<html>
  <head>
  </head>
  <body>
  <script>
    var Module = {
      onRuntimeInitialized: function() {
      }
    };
  </script>
  <script src="wrapper.js"></script>
    <input type="file" id="file" name="file" />
  <script>
    function onChange(e) {
        var file = e.target.files[0];
        
        var reader = new FileReader();
        reader.onload = function(e) {
            var buffer = reader.result;
            var src = new Uint8Array(buffer);
            var ptr = Module._malloc(buffer.byteLength);
            var arr = new Uint8Array(Module.HEAPU8.buffer, ptr, buffer.byteLength);
            var ctx = new AudioContext();
            var time = 0;
            arr.set(src, 0);
            
            var decoder = new Module.Decoder();
            decoder.addFragment(ptr, buffer.byteLength);
            
            while (decoder.hasMore()) {
                var audio = decoder.decode(1);
                if (audio === undefined) {
                    if (decoder.hasMore() === false) {
                        break;
                    }
                }
                var source = ctx.createBufferSource();
                source.buffer = audio;
                source.connect(ctx.destination);
                source.start(time);
                time += audio.duration;
            }
            
            decoder.delete();
        }
        reader.readAsArrayBuffer(file);
        
    }
    document.getElementById("file").addEventListener("change", onChange, false);
  </script>
  </body>
</html>