processor.worker.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. !(function () {
  2. "use strict";
  3. self.onmessage = function (a) {
  4. var t = a.data,
  5. e = t.type,
  6. r = t.data,
  7. o = r;
  8. if ("init" === e) {
  9. var n = r.fromSampleRate,
  10. l = r.toSampleRate;
  11. return (self.fromSampleRate = n), void (self.toSampleRate = l);
  12. }
  13. if (("base64" === e && (o = atob(r)), "string" == typeof o)) {
  14. for (
  15. var f = new Uint8Array(o.length + (o.length % 2)), i = 0;
  16. i < o.length;
  17. ++i
  18. )
  19. f[i] = o.charCodeAt(i);
  20. o = new Int16Array(f.buffer);
  21. }
  22. var s = o;
  23. "Float32Array" !== e &&
  24. (o = (function (a) {
  25. for (var t = [], e = 0; e < a.length; e++) {
  26. var r = a[e] < 0 ? a[e] / 32768 : a[e] / 32767;
  27. t.push(r);
  28. }
  29. return new Float32Array(t);
  30. })(o)),
  31. (o = (function (a, t, e) {
  32. var r = Math.round(a.length * (e / t)),
  33. o = new Float32Array(r),
  34. n = (a.length - 1) / (r - 1);
  35. o[0] = a[0];
  36. for (var l = 1; l < r - 1; l++) {
  37. var f = l * n,
  38. i = Math.floor(f).toFixed(),
  39. s = Math.ceil(f).toFixed(),
  40. u = f - i;
  41. o[l] = a[i] + (a[s] - a[i]) * u;
  42. }
  43. return (o[r - 1] = a[a.length - 1]), o;
  44. })(o, self.fromSampleRate, self.toSampleRate)),
  45. self.postMessage({ audioData: o, pcmAudioData: s });
  46. };
  47. })();