testaugnitoambientsdk
Advanced tools
Comparing version 2.1.0 to 2.1.1
{ | ||
"name": "testaugnitoambientsdk", | ||
"version": "2.1.0", | ||
"version": "2.1.1", | ||
"description": "Use this typescript SDK to integrate Augnito’s Ambient Tech within your EMR. To get access credentials or know more about how Augnito Ambient can benefit you, please visit our website and connect with our sales team: https://augnito.ai/", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -0,1 +1,12 @@ | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } | ||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } | ||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } | ||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } | ||
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } | ||
function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } | ||
function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; } | ||
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } | ||
function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } } | ||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
/** | ||
@@ -19,3 +30,4 @@ * Captures Audio and DownSamples into each channel. | ||
var nextOffsetBuffer = Math.round((offsetResult + 1) * sampleRateRatio); | ||
var accum = 0, count = 0; | ||
var accum = 0, | ||
count = 0; | ||
for (var i = offsetBuffer; i < nextOffsetBuffer && i < buffer.length; i++) { | ||
@@ -31,49 +43,33 @@ accum += buffer[i]; | ||
} | ||
let accumulator = [] | ||
class AudioPCMCapture extends AudioWorkletProcessor { | ||
constructor() { | ||
super(); | ||
var AudioPCMCapture = /*#__PURE__*/function (_AudioWorkletProcesso) { | ||
_inheritsLoose(AudioPCMCapture, _AudioWorkletProcesso); | ||
function AudioPCMCapture() { | ||
return _AudioWorkletProcesso.call(this) || this; | ||
} | ||
static get parameterDescriptors() { | ||
return [ | ||
{ | ||
var _proto = AudioPCMCapture.prototype; | ||
_proto.process = function process(inputList, outputList, parameters) { | ||
var desiredSampleRate = parameters.desiredSampleRate[0]; | ||
var sourceLimit = Math.min(inputList.length, outputList.length); | ||
for (var inputNum = 0; inputNum < sourceLimit; inputNum++) { | ||
var input = inputList[inputNum]; | ||
if (input.length >= 1) { | ||
var output = downsampleBuffer(input[0], sampleRate, desiredSampleRate); | ||
this.port.postMessage(output); | ||
} | ||
} | ||
return true; | ||
}; | ||
_createClass(AudioPCMCapture, null, [{ | ||
key: "parameterDescriptors", | ||
get: function get() { | ||
return [{ | ||
name: "desiredSampleRate", | ||
defaultValue: 16000, | ||
minValue: 0, | ||
maxValue: 96000, | ||
}, | ||
{ | ||
name: "closeCalled", | ||
defaultValue: false | ||
} | ||
]; | ||
} | ||
process(inputList, outputList, parameters) { | ||
let desiredSampleRate = parameters.desiredSampleRate[0] | ||
let closeCalled = parameters.closeCalled[0] | ||
const sourceLimit = Math.min(inputList.length, outputList.length); | ||
for (let inputNum = 0; inputNum < sourceLimit; inputNum++) { | ||
let input = inputList[inputNum]; | ||
if (input.length >= 1) { | ||
accumulator.push.apply(accumulator, input[0]) | ||
if (accumulator.length >= 3200 || closeCalled) { | ||
let output = downsampleBuffer(accumulator, sampleRate, desiredSampleRate) | ||
let data = { | ||
"data": output, | ||
"done": closeCalled, | ||
} | ||
this.port.postMessage(data); | ||
accumulator = [] | ||
} | ||
} | ||
maxValue: 96000 | ||
}]; | ||
} | ||
return true; | ||
} | ||
} | ||
registerProcessor("pcm-capture", AudioPCMCapture); | ||
}]); | ||
return AudioPCMCapture; | ||
}( /*#__PURE__*/_wrapNativeSuper(AudioWorkletProcessor)); | ||
registerProcessor("pcm-capture", AudioPCMCapture); |
@@ -0,4 +1,5 @@ | ||
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
var processorUrl = new URL('pcm-capture.js', import.meta.url); | ||
function downsampleBuffer(buffer, recordSampleRate, exportSampleRate) { | ||
@@ -15,3 +16,4 @@ if (exportSampleRate === recordSampleRate) { | ||
var nextOffsetBuffer = Math.round((offsetResult + 1) * sampleRateRatio); | ||
var accum = 0, count = 0; | ||
var accum = 0, | ||
count = 0; | ||
for (var i = offsetBuffer; i < nextOffsetBuffer && i < buffer.length; i++) { | ||
@@ -27,64 +29,111 @@ accum += buffer[i]; | ||
} | ||
export class Recorder { | ||
static audioContext = null; | ||
static stream = null; | ||
constructor(config = {}) { | ||
export var Recorder = /*#__PURE__*/function () { | ||
function Recorder(config) { | ||
if (config === void 0) { | ||
config = {}; | ||
} | ||
this.desiredSampleRate = config.desiredSampleRate || 16000; | ||
this.onDataCallback = config.onDataCallback || {}; | ||
this.capture = null; | ||
let resolver; | ||
this.closed = new Promise((resolve) => { | ||
resolver = resolve | ||
}) | ||
this.resolver = resolver | ||
} | ||
static getCreateAudioContext() { | ||
const AudioContext = window.AudioContext || window.webkitAudioContext; | ||
if(!Recorder.audioContext) { | ||
Recorder.audioContext = new AudioContext() | ||
Recorder.getCreateAudioContext = function getCreateAudioContext() { | ||
var AudioContext = window.AudioContext || window.webkitAudioContext; | ||
if (!Recorder.audioContext) { | ||
Recorder.audioContext = new AudioContext(); | ||
} | ||
return Recorder.audioContext | ||
} | ||
static async StopAudioContext() { | ||
if (Recorder.audioContext) { | ||
try { | ||
await Recorder.audioContext.close(); | ||
Recorder.audioContext = null; | ||
} | ||
catch (e) { | ||
console.log("Closing Audio Context:" + e) | ||
} | ||
return Recorder.audioContext; | ||
}; | ||
Recorder.StopAudioContext = /*#__PURE__*/function () { | ||
var _StopAudioContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
if (!Recorder.audioContext) { | ||
_context.next = 10; | ||
break; | ||
} | ||
_context.prev = 1; | ||
_context.next = 4; | ||
return Recorder.audioContext.close(); | ||
case 4: | ||
Recorder.audioContext = null; | ||
_context.next = 10; | ||
break; | ||
case 7: | ||
_context.prev = 7; | ||
_context.t0 = _context["catch"](1); | ||
console.log("Closing Audio Context:" + _context.t0); | ||
case 10: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee, null, [[1, 7]]); | ||
})); | ||
function StopAudioContext() { | ||
return _StopAudioContext.apply(this, arguments); | ||
} | ||
} | ||
static async GetAudioStream() { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.getUserMedia; | ||
var audioSourceConstraints = { audio: {channelCount: 1}, video: false }; | ||
if (navigator.mediaDevices.getUserMedia) { | ||
// For safari in mac and new browser | ||
try{ | ||
Recorder.stream = await navigator.mediaDevices.getUserMedia(audioSourceConstraints) | ||
return Recorder.stream | ||
}catch(e) { | ||
console.log("Audio Capture: " + e); | ||
} | ||
}else if (navigator.getUserMedia) { | ||
try { | ||
Recorder.stream = await navigator.getUserMedia(audioSourceConstraints); | ||
return Recorder.stream | ||
} catch (e) { | ||
console.log("Audio Capture: " + e); | ||
} | ||
return StopAudioContext; | ||
}(); | ||
Recorder.GetAudioStream = /*#__PURE__*/function () { | ||
var _GetAudioStream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { | ||
var audioSourceConstraints; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.getUserMedia; | ||
audioSourceConstraints = { | ||
audio: { | ||
channelCount: 1 | ||
}, | ||
video: false | ||
}; | ||
if (!navigator.mediaDevices.getUserMedia) { | ||
_context2.next = 15; | ||
break; | ||
} | ||
_context2.prev = 3; | ||
_context2.next = 6; | ||
return navigator.mediaDevices.getUserMedia(audioSourceConstraints); | ||
case 6: | ||
Recorder.stream = _context2.sent; | ||
return _context2.abrupt("return", Recorder.stream); | ||
case 10: | ||
_context2.prev = 10; | ||
_context2.t0 = _context2["catch"](3); | ||
console.log("Audio Capture: " + _context2.t0); | ||
case 13: | ||
_context2.next = 29; | ||
break; | ||
case 15: | ||
if (!navigator.getUserMedia) { | ||
_context2.next = 28; | ||
break; | ||
} | ||
_context2.prev = 16; | ||
_context2.next = 19; | ||
return navigator.getUserMedia(audioSourceConstraints); | ||
case 19: | ||
Recorder.stream = _context2.sent; | ||
return _context2.abrupt("return", Recorder.stream); | ||
case 23: | ||
_context2.prev = 23; | ||
_context2.t1 = _context2["catch"](16); | ||
console.log("Audio Capture: " + _context2.t1); | ||
case 26: | ||
_context2.next = 29; | ||
break; | ||
case 28: | ||
console.log("Audio Capture Not Supported"); | ||
case 29: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2, null, [[3, 10], [16, 23]]); | ||
})); | ||
function GetAudioStream() { | ||
return _GetAudioStream.apply(this, arguments); | ||
} | ||
else { | ||
console.log("Audio Capture Not Supported"); | ||
} | ||
} | ||
static StopStream() { | ||
return GetAudioStream; | ||
}(); | ||
Recorder.StopStream = function StopStream() { | ||
if (Recorder.stream) { | ||
@@ -95,90 +144,140 @@ try { | ||
} | ||
} | ||
catch (e) { | ||
console.log(e) | ||
} | ||
} | ||
} | ||
async createPCMCaptureNode(onDataCallback) { | ||
let audioContext = Recorder.getCreateAudioContext() | ||
let processorNode; | ||
try { | ||
processorNode = new AudioWorkletNode(audioContext, "pcm-capture"); | ||
} catch (e) { | ||
try { | ||
await audioContext.audioWorklet.addModule(processorUrl); | ||
processorNode = new AudioWorkletNode(audioContext, "pcm-capture"); | ||
} catch (e) { | ||
console.log('Error: Unable to create worklet node: ' + e); | ||
return null; | ||
console.log(e); | ||
} | ||
} | ||
let resolver = this.resolver | ||
processorNode.port.onmessage = (ev) => { | ||
var samples = ev.data["data"] | ||
var done = ev.data["done"] | ||
var buffer = new ArrayBuffer(samples.length * 2); | ||
var view = new DataView(buffer); | ||
Recorder.floatTo16BitPCM(view, 0, samples); | ||
onDataCallback(view) | ||
if (done == true) { | ||
resolver() | ||
} | ||
}; | ||
var _proto = Recorder.prototype; | ||
_proto.createPCMCaptureNode = /*#__PURE__*/function () { | ||
var _createPCMCaptureNode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(onDataCallback) { | ||
var audioContext, processorNode, desiredSampingRateParam; | ||
return _regeneratorRuntime().wrap(function _callee3$(_context3) { | ||
while (1) switch (_context3.prev = _context3.next) { | ||
case 0: | ||
audioContext = Recorder.getCreateAudioContext(); | ||
_context3.prev = 1; | ||
processorNode = new AudioWorkletNode(audioContext, "pcm-capture"); | ||
_context3.next = 18; | ||
break; | ||
case 5: | ||
_context3.prev = 5; | ||
_context3.t0 = _context3["catch"](1); | ||
_context3.prev = 7; | ||
console.log("adding..."); | ||
_context3.next = 11; | ||
return audioContext.audioWorklet.addModule(processorUrl); | ||
case 11: | ||
processorNode = new AudioWorkletNode(audioContext, "pcm-capture"); | ||
_context3.next = 18; | ||
break; | ||
case 14: | ||
_context3.prev = 14; | ||
_context3.t1 = _context3["catch"](7); | ||
console.log('Error: Unable to create worklet node: ' + _context3.t1); | ||
return _context3.abrupt("return", null); | ||
case 18: | ||
processorNode.port.onmessage = function (ev) { | ||
var samples = ev.data; | ||
var buffer = new ArrayBuffer(samples.length * 2); | ||
var view = new DataView(buffer); | ||
Recorder.floatTo16BitPCM(view, 0, samples); | ||
onDataCallback(view); | ||
}; | ||
desiredSampingRateParam = processorNode.parameters.get("desiredSampleRate"); | ||
desiredSampingRateParam.value = this.desiredSampleRate; | ||
_context3.next = 23; | ||
return audioContext.resume(); | ||
case 23: | ||
return _context3.abrupt("return", processorNode); | ||
case 24: | ||
case "end": | ||
return _context3.stop(); | ||
} | ||
}, _callee3, this, [[1, 5], [7, 14]]); | ||
})); | ||
function createPCMCaptureNode(_x) { | ||
return _createPCMCaptureNode.apply(this, arguments); | ||
} | ||
let desiredSampingRateParam = processorNode.parameters.get("desiredSampleRate"); | ||
desiredSampingRateParam.value = this.desiredSampleRate | ||
await audioContext.resume(); | ||
return processorNode; | ||
} | ||
createScriptProcessorNode(onDataCallback) { | ||
let audioContext = Recorder.getCreateAudioContext() | ||
let processorNode = audioContext.createScriptProcessor(4096, 1, 1); | ||
let desiredSampleRate = this.desiredSampleRate | ||
return createPCMCaptureNode; | ||
}(); | ||
_proto.createScriptProcessorNode = function createScriptProcessorNode(onDataCallback) { | ||
var audioContext = Recorder.getCreateAudioContext(); | ||
var processorNode = audioContext.createScriptProcessor(4096, 1, 1); | ||
var desiredSampleRate = this.desiredSampleRate; | ||
processorNode.onaudioprocess = function (audioProcessingEvent) { | ||
let inputBuffer = audioProcessingEvent.inputBuffer; | ||
let inputData = inputBuffer.getChannelData(0); | ||
let samples = downsampleBuffer(inputData, inputBuffer.sampleRate, desiredSampleRate) | ||
var inputBuffer = audioProcessingEvent.inputBuffer; | ||
var inputData = inputBuffer.getChannelData(0); | ||
var samples = downsampleBuffer(inputData, inputBuffer.sampleRate, desiredSampleRate); | ||
var buffer = new ArrayBuffer(samples.length * 2); | ||
var view = new DataView(buffer); | ||
Recorder.floatTo16BitPCM(view, 0, samples); | ||
onDataCallback(view) | ||
}; | ||
return processorNode | ||
} | ||
async StartRecording() { | ||
if ('AudioWorklet' in window) { | ||
this.capture = await this.createPCMCaptureNode(this.onDataCallback); | ||
} else { | ||
this.capture = this.createScriptProcessorNode(this.onDataCallback) | ||
onDataCallback(view); | ||
}; | ||
return processorNode; | ||
}; | ||
_proto.StartRecording = /*#__PURE__*/function () { | ||
var _StartRecording = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() { | ||
var audioContext, stream, soundSource; | ||
return _regeneratorRuntime().wrap(function _callee4$(_context4) { | ||
while (1) switch (_context4.prev = _context4.next) { | ||
case 0: | ||
if (!('AudioWorklet' in window)) { | ||
_context4.next = 6; | ||
break; | ||
} | ||
_context4.next = 3; | ||
return this.createPCMCaptureNode(this.onDataCallback); | ||
case 3: | ||
this.capture = _context4.sent; | ||
_context4.next = 7; | ||
break; | ||
case 6: | ||
this.capture = this.createScriptProcessorNode(this.onDataCallback); | ||
case 7: | ||
audioContext = Recorder.getCreateAudioContext(); | ||
if (this.capture) { | ||
_context4.next = 11; | ||
break; | ||
} | ||
console.log("Error: unable to create Capture processor"); | ||
return _context4.abrupt("return"); | ||
case 11: | ||
_context4.next = 13; | ||
return Recorder.GetAudioStream(); | ||
case 13: | ||
stream = _context4.sent; | ||
soundSource = new MediaStreamAudioSourceNode(audioContext, { | ||
mediaStream: stream | ||
}); | ||
soundSource.connect(this.capture).connect(audioContext.destination); | ||
case 16: | ||
case "end": | ||
return _context4.stop(); | ||
} | ||
}, _callee4, this); | ||
})); | ||
function StartRecording() { | ||
return _StartRecording.apply(this, arguments); | ||
} | ||
let audioContext = Recorder.getCreateAudioContext() | ||
if (!this.capture) { | ||
console.log("Error: unable to create Capture processor"); | ||
return; | ||
return StartRecording; | ||
}(); | ||
_proto.StopRecording = /*#__PURE__*/function () { | ||
var _StopRecording = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() { | ||
return _regeneratorRuntime().wrap(function _callee5$(_context5) { | ||
while (1) switch (_context5.prev = _context5.next) { | ||
case 0: | ||
Recorder.StopAudioContext(); | ||
Recorder.StopStream(); | ||
case 2: | ||
case "end": | ||
return _context5.stop(); | ||
} | ||
}, _callee5); | ||
})); | ||
function StopRecording() { | ||
return _StopRecording.apply(this, arguments); | ||
} | ||
let stream = await Recorder.GetAudioStream() | ||
const soundSource = new MediaStreamAudioSourceNode(audioContext, { | ||
mediaStream: stream, | ||
}); | ||
soundSource.connect(this.capture).connect(audioContext.destination); | ||
} | ||
async StopRecording() { | ||
Recorder.StopStream() | ||
if (Object.prototype.toString.call(this.capture) === "[object AudioWorkletNode]") { | ||
let closeCapture = this.capture.parameters.get("closeCalled") | ||
closeCapture.value = true | ||
await this.closed | ||
} | ||
Recorder.StopAudioContext() | ||
} | ||
static floatTo16BitPCM(output, offset, input) { | ||
return StopRecording; | ||
}(); | ||
Recorder.floatTo16BitPCM = function floatTo16BitPCM(output, offset, input) { | ||
for (var i = 0; i < input.length; i++, offset += 2) { | ||
@@ -188,3 +287,6 @@ var s = Math.max(-1, Math.min(1, input[i])); | ||
} | ||
} | ||
} | ||
}; | ||
return Recorder; | ||
}(); | ||
Recorder.audioContext = null; | ||
Recorder.stream = null; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
80402
1554