react-native-audio-api 0.11.0-nightly-66e4495-20251201 → 0.11.0-nightly-befc3c6-20251202
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +2 -0
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +1 -0
- package/lib/commonjs/AudioAPIModule/AudioAPIModule.js +90 -0
- package/lib/commonjs/AudioAPIModule/AudioAPIModule.js.map +1 -0
- package/lib/commonjs/AudioAPIModule/globals.d.js +6 -0
- package/lib/commonjs/AudioAPIModule/globals.d.js.map +1 -0
- package/lib/commonjs/AudioAPIModule/index.js +14 -0
- package/lib/commonjs/AudioAPIModule/index.js.map +1 -0
- package/lib/commonjs/api.js +14 -24
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioContext.js +4 -7
- package/lib/commonjs/core/AudioContext.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +9 -8
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/OfflineAudioContext.js +3 -6
- package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +1 -7
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/commonjs/utils/index.js +9 -22
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/AudioAPIModule/AudioAPIModule.js +87 -0
- package/lib/module/AudioAPIModule/AudioAPIModule.js.map +1 -0
- package/lib/module/AudioAPIModule/globals.d.js +4 -0
- package/lib/module/AudioAPIModule/globals.d.js.map +1 -0
- package/lib/module/AudioAPIModule/index.js +4 -0
- package/lib/module/AudioAPIModule/index.js.map +1 -0
- package/lib/module/api.js +17 -28
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioContext.js +4 -7
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +10 -9
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/OfflineAudioContext.js +3 -6
- package/lib/module/core/OfflineAudioContext.js.map +1 -1
- package/lib/module/system/AudioManager.js +1 -7
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/module/utils/index.js +8 -21
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/AudioAPIModule/AudioAPIModule.d.ts +36 -0
- package/lib/typescript/AudioAPIModule/AudioAPIModule.d.ts.map +1 -0
- package/lib/typescript/AudioAPIModule/index.d.ts +2 -0
- package/lib/typescript/AudioAPIModule/index.d.ts.map +1 -0
- package/lib/typescript/api.d.ts +17 -26
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts +1 -1
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +5 -5
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/OfflineAudioContext.d.ts +1 -1
- package/lib/typescript/core/OfflineAudioContext.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +2 -2
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +1 -11
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/package.json +4 -1
- package/scripts/validate-worklets-version.js +4 -5
- package/src/AudioAPIModule/AudioAPIModule.ts +122 -0
- package/src/AudioAPIModule/globals.d.ts +34 -0
- package/src/AudioAPIModule/index.ts +1 -0
- package/src/api.ts +20 -71
- package/src/core/AudioContext.ts +4 -7
- package/src/core/BaseAudioContext.ts +59 -48
- package/src/core/OfflineAudioContext.ts +4 -7
- package/src/system/AudioManager.ts +9 -19
- package/src/utils/index.ts +9 -35
|
@@ -28,6 +28,7 @@ class AudioFocusListener(
|
|
|
28
28
|
}
|
|
29
29
|
audioAPIModule.get()?.invokeHandlerWithEventNameAndEventBody("interruption", body)
|
|
30
30
|
}
|
|
31
|
+
|
|
31
32
|
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> {
|
|
32
33
|
playOnAudioFocus = lockScreenManager.get()?.isPlaying == true
|
|
33
34
|
val body =
|
|
@@ -37,6 +38,7 @@ class AudioFocusListener(
|
|
|
37
38
|
}
|
|
38
39
|
audioAPIModule.get()?.invokeHandlerWithEventNameAndEventBody("interruption", body)
|
|
39
40
|
}
|
|
41
|
+
|
|
40
42
|
AudioManager.AUDIOFOCUS_GAIN -> {
|
|
41
43
|
if (playOnAudioFocus) {
|
|
42
44
|
val body =
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _specs = require("../specs");
|
|
8
|
+
// Hint: Copied from react-native-worklets
|
|
9
|
+
// Doesn't really matter what is inside, just need a unique type
|
|
10
|
+
|
|
11
|
+
class AudioAPIModule {
|
|
12
|
+
#workletsModule_ = null;
|
|
13
|
+
#canUseWorklets_ = false;
|
|
14
|
+
#workletsVersion = 'unknown';
|
|
15
|
+
#workletsAvailable_ = false;
|
|
16
|
+
supportedWorkletsVersion = ['0.6.0', '0.6.1'];
|
|
17
|
+
constructor() {
|
|
18
|
+
// Important! Verify and import worklets first
|
|
19
|
+
// otherwise the native module installation might crash
|
|
20
|
+
// if react-native-worklets is not imported before audio-api
|
|
21
|
+
this.#verifyWorklets();
|
|
22
|
+
if (this.#verifyInstallation()) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (!_specs.NativeAudioAPIModule) {
|
|
26
|
+
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
27
|
+
}
|
|
28
|
+
_specs.NativeAudioAPIModule.install();
|
|
29
|
+
}
|
|
30
|
+
#verifyWorklets() {
|
|
31
|
+
try {
|
|
32
|
+
const workletsPackage = require('react-native-worklets');
|
|
33
|
+
const workletsPackageJson = require('react-native-worklets/package.json');
|
|
34
|
+
this.#workletsVersion = workletsPackageJson.version;
|
|
35
|
+
this.#workletsAvailable_ = true;
|
|
36
|
+
this.#canUseWorklets_ = this.supportedWorkletsVersion.includes(workletsPackageJson.version);
|
|
37
|
+
if (this.#canUseWorklets_) {
|
|
38
|
+
this.#workletsModule_ = workletsPackage;
|
|
39
|
+
}
|
|
40
|
+
return this.#canUseWorklets_;
|
|
41
|
+
} catch {
|
|
42
|
+
this.#canUseWorklets_ = false;
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
#verifyInstallation() {
|
|
47
|
+
return global.createAudioContext != null && global.createOfflineAudioContext != null && global.createAudioRecorder != null && global.createAudioDecoder != null && global.createAudioStretcher != null && global.AudioEventEmitter != null;
|
|
48
|
+
}
|
|
49
|
+
get workletsModule() {
|
|
50
|
+
return this.#workletsModule_;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Indicates whether react-native-worklets are installed in matching version,
|
|
55
|
+
* for usage with react-native-audio-api.
|
|
56
|
+
*/
|
|
57
|
+
get canUseWorklets() {
|
|
58
|
+
return this.#canUseWorklets_;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Returns the installed worklets version or 'unknown'. */
|
|
62
|
+
get workletsVersion() {
|
|
63
|
+
return this.#workletsVersion;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Indicates whether react-native-worklets are installed, regardless of
|
|
68
|
+
* version support. Useful for asserting compatibility.
|
|
69
|
+
*/
|
|
70
|
+
get areWorkletsAvailable() {
|
|
71
|
+
return this.#workletsAvailable_;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Indicates whether the installed react-native-worklets version is supported.
|
|
76
|
+
* Useful for asserting compatibility.
|
|
77
|
+
*/
|
|
78
|
+
get isWorkletsVersionSupported() {
|
|
79
|
+
// Note: if areWorkletsAvailable is true, canUseWorklets is equivalent to version check
|
|
80
|
+
return this.#canUseWorklets_;
|
|
81
|
+
}
|
|
82
|
+
createAudioRuntime() {
|
|
83
|
+
if (!this.#canUseWorklets_) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return this.#workletsModule_.createWorkletRuntime('AudioWorkletRuntime');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
var _default = exports.default = new AudioAPIModule();
|
|
90
|
+
//# sourceMappingURL=AudioAPIModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_specs","require","AudioAPIModule","workletsModule_","canUseWorklets_","workletsVersion","workletsAvailable_","supportedWorkletsVersion","constructor","verifyWorklets","verifyInstallation","NativeAudioAPIModule","Error","install","#verifyWorklets","workletsPackage","workletsPackageJson","version","includes","#verifyInstallation","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","createAudioDecoder","createAudioStretcher","AudioEventEmitter","workletsModule","canUseWorklets","areWorkletsAvailable","isWorkletsVersionSupported","createAudioRuntime","createWorkletRuntime","_default","exports","default"],"sourceRoot":"../../../src","sources":["AudioAPIModule/AudioAPIModule.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;;AAcA,MAAMC,cAAc,CAAC;EACnB,CAACC,eAAe,GAA2B,IAAI;EAC/C,CAACC,eAAe,GAAG,KAAK;EACxB,CAACC,eAAe,GAAG,SAAS;EAC5B,CAACC,kBAAkB,GAAG,KAAK;EAEpBC,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;EAEpDC,WAAWA,CAAA,EAAG;IACZ;IACA;IACA;IACA,IAAI,CAAC,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAI,IAAI,CAAC,CAACC,kBAAkB,CAAC,CAAC,EAAE;MAC9B;IACF;IAEA,IAAI,CAACC,2BAAoB,EAAE;MACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;IACH;IAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;EAChC;EAEA,CAACJ,cAAcK,CAAA,EAAY;IACzB,IAAI;MACF,MAAMC,eAAe,GAAGd,OAAO,CAAC,uBAAuB,CAAC;MACxD,MAAMe,mBAAmB,GAAGf,OAAO,CAAC,oCAAoC,CAAC;MACzE,IAAI,CAAC,CAACI,eAAe,GAAGW,mBAAmB,CAACC,OAAO;MACnD,IAAI,CAAC,CAACX,kBAAkB,GAAG,IAAI;MAE/B,IAAI,CAAC,CAACF,eAAe,GAAG,IAAI,CAACG,wBAAwB,CAACW,QAAQ,CAC5DF,mBAAmB,CAACC,OACtB,CAAC;MAED,IAAI,IAAI,CAAC,CAACb,eAAe,EAAE;QACzB,IAAI,CAAC,CAACD,eAAe,GAAGY,eAAe;MACzC;MAEA,OAAO,IAAI,CAAC,CAACX,eAAe;IAC9B,CAAC,CAAC,MAAM;MACN,IAAI,CAAC,CAACA,eAAe,GAAG,KAAK;MAC7B,OAAO,KAAK;IACd;EACF;EAEA,CAACM,kBAAkBS,CAAA,EAAY;IAC7B,OACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,kBAAkB,IAAI,IAAI,IACjCJ,MAAM,CAACK,oBAAoB,IAAI,IAAI,IACnCL,MAAM,CAACM,iBAAiB,IAAI,IAAI;EAEpC;EAEA,IAAIC,cAAcA,CAAA,EAA2B;IAC3C,OAAO,IAAI,CAAC,CAACxB,eAAe;EAC9B;;EAEA;AACF;AACA;AACA;EACE,IAAIyB,cAAcA,CAAA,EAAY;IAC5B,OAAO,IAAI,CAAC,CAACxB,eAAe;EAC9B;;EAEA;EACA,IAAIC,eAAeA,CAAA,EAAW;IAC5B,OAAO,IAAI,CAAC,CAACA,eAAe;EAC9B;;EAEA;AACF;AACA;AACA;EACE,IAAIwB,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAAC,CAACvB,kBAAkB;EACjC;;EAEA;AACF;AACA;AACA;EACE,IAAIwB,0BAA0BA,CAAA,EAAY;IACxC;IACA,OAAO,IAAI,CAAC,CAAC1B,eAAe;EAC9B;EAEO2B,kBAAkBA,CAAA,EAA0B;IACjD,IAAI,CAAC,IAAI,CAAC,CAAC3B,eAAe,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAAC,CAACD,eAAe,CAAE6B,oBAAoB,CAAC,qBAAqB,CAAC;EAC3E;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAIjC,cAAc,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["AudioAPIModule/globals.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _AudioAPIModule.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _AudioAPIModule = _interopRequireDefault(require("./AudioAPIModule"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_AudioAPIModule","_interopRequireDefault","require","e","__esModule","default"],"sourceRoot":"../../../src","sources":["AudioAPIModule/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
package/lib/commonjs/api.js
CHANGED
|
@@ -291,46 +291,36 @@ Object.defineProperty(exports, "useSystemVolume", {
|
|
|
291
291
|
return _useSystemVolume.default;
|
|
292
292
|
}
|
|
293
293
|
});
|
|
294
|
-
|
|
295
|
-
var
|
|
296
|
-
var _WorkletSourceNode = _interopRequireDefault(require("./core/WorkletSourceNode"));
|
|
297
|
-
var _WorkletProcessingNode = _interopRequireDefault(require("./core/WorkletProcessingNode"));
|
|
298
|
-
var _RecorderAdapterNode = _interopRequireDefault(require("./core/RecorderAdapterNode"));
|
|
294
|
+
require("./AudioAPIModule");
|
|
295
|
+
var _AnalyserNode = _interopRequireDefault(require("./core/AnalyserNode"));
|
|
299
296
|
var _AudioBuffer = _interopRequireDefault(require("./core/AudioBuffer"));
|
|
300
|
-
var _AudioBufferSourceNode = _interopRequireDefault(require("./core/AudioBufferSourceNode"));
|
|
301
297
|
var _AudioBufferQueueSourceNode = _interopRequireDefault(require("./core/AudioBufferQueueSourceNode"));
|
|
298
|
+
var _AudioBufferSourceNode = _interopRequireDefault(require("./core/AudioBufferSourceNode"));
|
|
302
299
|
var _AudioContext = _interopRequireDefault(require("./core/AudioContext"));
|
|
303
|
-
var
|
|
300
|
+
var _AudioDecoder = require("./core/AudioDecoder");
|
|
304
301
|
var _AudioDestinationNode = _interopRequireDefault(require("./core/AudioDestinationNode"));
|
|
305
302
|
var _AudioNode = _interopRequireDefault(require("./core/AudioNode"));
|
|
306
|
-
var _AnalyserNode = _interopRequireDefault(require("./core/AnalyserNode"));
|
|
307
303
|
var _AudioParam = _interopRequireDefault(require("./core/AudioParam"));
|
|
304
|
+
var _AudioRecorder = _interopRequireDefault(require("./core/AudioRecorder"));
|
|
308
305
|
var _AudioScheduledSourceNode = _interopRequireDefault(require("./core/AudioScheduledSourceNode"));
|
|
306
|
+
var _AudioStretcher = _interopRequireDefault(require("./core/AudioStretcher"));
|
|
309
307
|
var _BaseAudioContext = _interopRequireDefault(require("./core/BaseAudioContext"));
|
|
310
308
|
var _BiquadFilterNode = _interopRequireDefault(require("./core/BiquadFilterNode"));
|
|
309
|
+
var _ConstantSourceNode = _interopRequireDefault(require("./core/ConstantSourceNode"));
|
|
310
|
+
var _ConvolverNode = _interopRequireDefault(require("./core/ConvolverNode"));
|
|
311
311
|
var _GainNode = _interopRequireDefault(require("./core/GainNode"));
|
|
312
|
+
var _OfflineAudioContext = _interopRequireDefault(require("./core/OfflineAudioContext"));
|
|
312
313
|
var _OscillatorNode = _interopRequireDefault(require("./core/OscillatorNode"));
|
|
314
|
+
var _RecorderAdapterNode = _interopRequireDefault(require("./core/RecorderAdapterNode"));
|
|
313
315
|
var _StereoPannerNode = _interopRequireDefault(require("./core/StereoPannerNode"));
|
|
314
|
-
var _AudioRecorder = _interopRequireDefault(require("./core/AudioRecorder"));
|
|
315
316
|
var _StreamerNode = _interopRequireDefault(require("./core/StreamerNode"));
|
|
316
|
-
var
|
|
317
|
-
var
|
|
318
|
-
var
|
|
317
|
+
var _WorkletNode = _interopRequireDefault(require("./core/WorkletNode"));
|
|
318
|
+
var _WorkletProcessingNode = _interopRequireDefault(require("./core/WorkletProcessingNode"));
|
|
319
|
+
var _WorkletSourceNode = _interopRequireDefault(require("./core/WorkletSourceNode"));
|
|
319
320
|
var _useSystemVolume = _interopRequireDefault(require("./hooks/useSystemVolume"));
|
|
320
|
-
var
|
|
321
|
-
var _AudioStretcher = _interopRequireDefault(require("./core/AudioStretcher"));
|
|
321
|
+
var _system = _interopRequireDefault(require("./system"));
|
|
322
322
|
var _types = require("./types");
|
|
323
323
|
var _types2 = require("./system/types");
|
|
324
324
|
var _errors = require("./errors");
|
|
325
325
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
326
|
-
/* eslint-disable no-var */
|
|
327
|
-
|
|
328
|
-
/* eslint-disable no-var */
|
|
329
|
-
|
|
330
|
-
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.createAudioDecoder == null || global.createAudioStretcher == null || global.AudioEventEmitter == null) {
|
|
331
|
-
if (!_specs.NativeAudioAPIModule) {
|
|
332
|
-
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
333
|
-
}
|
|
334
|
-
_specs.NativeAudioAPIModule.install();
|
|
335
|
-
}
|
|
336
326
|
//# sourceMappingURL=api.js.map
|
package/lib/commonjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","_useSystemVolume","_system","_types","_types2","_errors","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAA,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,2BAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,sBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,aAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,UAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,cAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,yBAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,eAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,iBAAA,GAAAZ,sBAAA,CAAAF,OAAA;AACA,IAAAe,iBAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,mBAAA,GAAAd,sBAAA,CAAAF,OAAA;AACA,IAAAiB,cAAA,GAAAf,sBAAA,CAAAF,OAAA;AACA,IAAAkB,SAAA,GAAAhB,sBAAA,CAAAF,OAAA;AACA,IAAAmB,oBAAA,GAAAjB,sBAAA,CAAAF,OAAA;AACA,IAAAoB,eAAA,GAAAlB,sBAAA,CAAAF,OAAA;AACA,IAAAqB,oBAAA,GAAAnB,sBAAA,CAAAF,OAAA;AACA,IAAAsB,iBAAA,GAAApB,sBAAA,CAAAF,OAAA;AACA,IAAAuB,aAAA,GAAArB,sBAAA,CAAAF,OAAA;AACA,IAAAwB,YAAA,GAAAtB,sBAAA,CAAAF,OAAA;AACA,IAAAyB,sBAAA,GAAAvB,sBAAA,CAAAF,OAAA;AACA,IAAA0B,kBAAA,GAAAxB,sBAAA,CAAAF,OAAA;AACA,IAAA2B,gBAAA,GAAAzB,sBAAA,CAAAF,OAAA;AACA,IAAA4B,OAAA,GAAA1B,sBAAA,CAAAF,OAAA;AAEA,IAAA6B,MAAA,GAAA7B,OAAA;AAWA,IAAA8B,OAAA,GAAA9B,OAAA;AAUA,IAAA+B,OAAA,GAAA/B,OAAA;AAMkB,SAAAE,uBAAA8B,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -4,20 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
8
|
-
var _system = _interopRequireDefault(require("../system"));
|
|
7
|
+
var _AudioAPIModule = _interopRequireDefault(require("../AudioAPIModule"));
|
|
9
8
|
var _errors = require("../errors");
|
|
10
|
-
var
|
|
9
|
+
var _system = _interopRequireDefault(require("../system"));
|
|
10
|
+
var _BaseAudioContext = _interopRequireDefault(require("./BaseAudioContext"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
class AudioContext extends _BaseAudioContext.default {
|
|
13
13
|
constructor(options) {
|
|
14
14
|
if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
|
|
15
15
|
throw new _errors.NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
if (_utils.isWorkletsVersionSupported) {
|
|
19
|
-
audioRuntime = _utils.workletsModule.createWorkletRuntime('AudioWorkletRuntime');
|
|
20
|
-
}
|
|
17
|
+
const audioRuntime = _AudioAPIModule.default.createAudioRuntime();
|
|
21
18
|
super(global.createAudioContext(options?.sampleRate || _system.default.getDevicePreferredSampleRate(), audioRuntime));
|
|
22
19
|
}
|
|
23
20
|
async close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_AudioAPIModule","_interopRequireDefault","require","_errors","_system","_BaseAudioContext","e","__esModule","default","AudioContext","BaseAudioContext","constructor","options","sampleRate","NotSupportedError","audioRuntime","AudioAPIModule","createAudioRuntime","global","createAudioContext","AudioManager","getDevicePreferredSampleRate","close","context","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,iBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAMG,YAAY,SAASC,yBAAgB,CAAC;EACzDC,WAAWA,CAACC,OAA6B,EAAE;IACzC,IACEA,OAAO,IACPA,OAAO,CAACC,UAAU,KACjBD,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EACzD;MACA,MAAM,IAAIC,yBAAiB,CACzB,6CAA6CF,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,MAAME,YAAY,GAAGC,uBAAc,CAACC,kBAAkB,CAAC,CAAC;IAExD,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBP,OAAO,EAAEC,UAAU,IAAIO,eAAY,CAACC,4BAA4B,CAAC,CAAC,EAClEN,YACF,CACF,CAAC;EACH;EAEA,MAAMO,KAAKA,CAAA,EAAkB;IAC3B,OAAQ,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAChD;EAEA,MAAME,MAAMA,CAAA,EAAqB;IAC/B,OAAQ,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EACjD;EAEA,MAAMC,OAAOA,CAAA,EAAqB;IAChC,OAAQ,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EAClD;AACF;AAACC,OAAA,CAAAlB,OAAA,GAAAC,YAAA","ignoreList":[]}
|
|
@@ -4,27 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _AudioAPIModule = _interopRequireDefault(require("../AudioAPIModule"));
|
|
7
8
|
var _errors = require("../errors");
|
|
8
9
|
var _utils = require("../utils");
|
|
9
|
-
var _WorkletSourceNode = _interopRequireDefault(require("./WorkletSourceNode"));
|
|
10
|
-
var _WorkletProcessingNode = _interopRequireDefault(require("./WorkletProcessingNode"));
|
|
11
10
|
var _AnalyserNode = _interopRequireDefault(require("./AnalyserNode"));
|
|
12
11
|
var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
|
|
13
12
|
var _AudioBufferQueueSourceNode = _interopRequireDefault(require("./AudioBufferQueueSourceNode"));
|
|
14
|
-
var _ConvolverNode = _interopRequireDefault(require("./ConvolverNode"));
|
|
15
13
|
var _AudioBufferSourceNode = _interopRequireDefault(require("./AudioBufferSourceNode"));
|
|
14
|
+
var _AudioDecoder = require("./AudioDecoder");
|
|
16
15
|
var _AudioDestinationNode = _interopRequireDefault(require("./AudioDestinationNode"));
|
|
17
16
|
var _BiquadFilterNode = _interopRequireDefault(require("./BiquadFilterNode"));
|
|
18
17
|
var _ConstantSourceNode = _interopRequireDefault(require("./ConstantSourceNode"));
|
|
18
|
+
var _ConvolverNode = _interopRequireDefault(require("./ConvolverNode"));
|
|
19
19
|
var _GainNode = _interopRequireDefault(require("./GainNode"));
|
|
20
|
+
var _IIRFilterNode = _interopRequireDefault(require("./IIRFilterNode"));
|
|
20
21
|
var _OscillatorNode = _interopRequireDefault(require("./OscillatorNode"));
|
|
21
22
|
var _PeriodicWave = _interopRequireDefault(require("./PeriodicWave"));
|
|
22
23
|
var _RecorderAdapterNode = _interopRequireDefault(require("./RecorderAdapterNode"));
|
|
23
24
|
var _StereoPannerNode = _interopRequireDefault(require("./StereoPannerNode"));
|
|
24
25
|
var _StreamerNode = _interopRequireDefault(require("./StreamerNode"));
|
|
25
26
|
var _WorkletNode = _interopRequireDefault(require("./WorkletNode"));
|
|
26
|
-
var
|
|
27
|
-
var
|
|
27
|
+
var _WorkletProcessingNode = _interopRequireDefault(require("./WorkletProcessingNode"));
|
|
28
|
+
var _WorkletSourceNode = _interopRequireDefault(require("./WorkletSourceNode"));
|
|
28
29
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
30
|
class BaseAudioContext {
|
|
30
31
|
constructor(context) {
|
|
@@ -55,7 +56,7 @@ class BaseAudioContext {
|
|
|
55
56
|
throw new _errors.NotSupportedError(`The buffer length provided (${bufferLength}) can not be less than 1`);
|
|
56
57
|
}
|
|
57
58
|
(0, _utils.assertWorkletsEnabled)();
|
|
58
|
-
const shareableWorklet =
|
|
59
|
+
const shareableWorklet = _AudioAPIModule.default.workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
|
|
59
60
|
'worklet';
|
|
60
61
|
|
|
61
62
|
const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
|
|
@@ -65,7 +66,7 @@ class BaseAudioContext {
|
|
|
65
66
|
}
|
|
66
67
|
createWorkletProcessingNode(callback, workletRuntime = 'AudioRuntime') {
|
|
67
68
|
(0, _utils.assertWorkletsEnabled)();
|
|
68
|
-
const shareableWorklet =
|
|
69
|
+
const shareableWorklet = _AudioAPIModule.default.workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
|
|
69
70
|
'worklet';
|
|
70
71
|
|
|
71
72
|
const inputData = inputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
|
|
@@ -76,7 +77,7 @@ class BaseAudioContext {
|
|
|
76
77
|
}
|
|
77
78
|
createWorkletSourceNode(callback, workletRuntime = 'AudioRuntime') {
|
|
78
79
|
(0, _utils.assertWorkletsEnabled)();
|
|
79
|
-
const shareableWorklet =
|
|
80
|
+
const shareableWorklet = _AudioAPIModule.default.workletsModule.makeShareableCloneRecursive((audioBuffers, framesToProcess, currentTime, startOffset) => {
|
|
80
81
|
'worklet';
|
|
81
82
|
|
|
82
83
|
const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_AudioAPIModule","_interopRequireDefault","require","_errors","_utils","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDecoder","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_GainNode","_IIRFilterNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","ArrayBuffer","TypeError","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","assertWorkletsEnabled","shareableWorklet","AudioAPIModule","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","WorkletNode","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","WorkletProcessingNode","createWorkletSourceNode","startOffset","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","streamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createIIRFilter","options","feedforward","feedback","length","every","value","InvalidStateError","IIRFilterNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","createConvolver","numberOfChannels","ConvolverNode","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _AudioAPIModule = _interopRequireDefault(require("../AudioAPIModule"));
|
|
8
8
|
var _errors = require("../errors");
|
|
9
9
|
var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
|
|
10
|
-
var
|
|
10
|
+
var _BaseAudioContext = _interopRequireDefault(require("./BaseAudioContext"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
class OfflineAudioContext extends _BaseAudioContext.default {
|
|
13
13
|
constructor(arg0, arg1, arg2) {
|
|
14
|
-
|
|
15
|
-
if (_utils.isWorkletsVersionSupported) {
|
|
16
|
-
audioRuntime = _utils.workletsModule.createWorkletRuntime('AudioWorkletRuntime');
|
|
17
|
-
}
|
|
14
|
+
const audioRuntime = _AudioAPIModule.default.createAudioRuntime();
|
|
18
15
|
if (typeof arg0 === 'object') {
|
|
19
16
|
const {
|
|
20
17
|
numberOfChannels,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_AudioAPIModule","_interopRequireDefault","require","_errors","_AudioBuffer","_BaseAudioContext","e","__esModule","default","OfflineAudioContext","BaseAudioContext","constructor","arg0","arg1","arg2","audioRuntime","AudioAPIModule","createAudioRuntime","numberOfChannels","length","sampleRate","global","createOfflineAudioContext","duration","NotSupportedError","isSuspended","isRendering","resume","InvalidStateError","context","suspend","suspendTime","currentTime","startRendering","audioBuffer","AudioBuffer","exports"],"sourceRoot":"../../../src","sources":["core/OfflineAudioContext.ts"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,iBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAMG,mBAAmB,SAASC,yBAAgB,CAAC;EAOhEC,WAAWA,CACTC,IAAyC,EACzCC,IAAa,EACbC,IAAa,EACb;IACA,MAAMC,YAAY,GAAGC,uBAAc,CAACC,kBAAkB,CAAC,CAAC;IAExD,IAAI,OAAOL,IAAI,KAAK,QAAQ,EAAE;MAC5B,MAAM;QAAEM,gBAAgB;QAAEC,MAAM;QAAEC;MAAW,CAAC,GAAGR,IAAI;MACrD,KAAK,CACHS,MAAM,CAACC,yBAAyB,CAC9BJ,gBAAgB,EAChBC,MAAM,EACNC,UAAU,EACVL,YACF,CACF,CAAC;MAED,IAAI,CAACQ,QAAQ,GAAGJ,MAAM,GAAGC,UAAU;IACrC,CAAC,MAAM,IACL,OAAOR,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,EACxB;MACA,KAAK,CAACO,MAAM,CAACC,yBAAyB,CAACV,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,YAAY,CAAC,CAAC;MACvE,IAAI,CAACQ,QAAQ,GAAGV,IAAI,GAAGC,IAAI;IAC7B,CAAC,MAAM;MACL,MAAM,IAAIU,yBAAiB,CAAC,+BAA+B,CAAC;IAC9D;IAEA,IAAI,CAACC,WAAW,GAAG,KAAK;IACxB,IAAI,CAACC,WAAW,GAAG,KAAK;EAC1B;EAEA,MAAMC,MAAMA,CAAA,EAAuB;IACjC,IAAI,CAAC,IAAI,CAACD,WAAW,EAAE;MACrB,MAAM,IAAIE,yBAAiB,CACzB,sDACF,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACH,WAAW,EAAE;MACrB,MAAM,IAAIG,yBAAiB,CACzB,4DACF,CAAC;IACH;IAEA,IAAI,CAACH,WAAW,GAAG,KAAK;IAExB,MAAO,IAAI,CAACI,OAAO,CAA0BF,MAAM,CAAC,CAAC;EACvD;EAEA,MAAMG,OAAOA,CAACC,WAAmB,EAAsB;IACrD,IAAIA,WAAW,GAAG,CAAC,EAAE;MACnB,MAAM,IAAIH,yBAAiB,CAAC,2CAA2C,CAAC;IAC1E;IAEA,IAAIG,WAAW,GAAG,IAAI,CAACF,OAAO,CAACG,WAAW,EAAE;MAC1C,MAAM,IAAIJ,yBAAiB,CACzB,sDAAsDG,WAAW,EACnE,CAAC;IACH;IAEA,IAAIA,WAAW,GAAG,IAAI,CAACR,QAAQ,EAAE;MAC/B,MAAM,IAAIK,yBAAiB,CACzB,8DAA8DG,WAAW,EAC3E,CAAC;IACH;IAEA,IAAI,CAACN,WAAW,GAAG,IAAI;IAEvB,MAAO,IAAI,CAACI,OAAO,CAA0BC,OAAO,CAACC,WAAW,CAAC;EACnE;EAEA,MAAME,cAAcA,CAAA,EAAyB;IAC3C,IAAI,IAAI,CAACP,WAAW,EAAE;MACpB,MAAM,IAAIE,yBAAiB,CAAC,0CAA0C,CAAC;IACzE;IAEA,IAAI,CAACF,WAAW,GAAG,IAAI;IAEvB,MAAMQ,WAAW,GAAG,MAClB,IAAI,CAACL,OAAO,CACZI,cAAc,CAAC,CAAC;IAElB,OAAO,IAAIE,oBAAW,CAACD,WAAW,CAAC;EACrC;AACF;AAACE,OAAA,CAAA5B,OAAA,GAAAC,mBAAA","ignoreList":[]}
|
|
@@ -4,14 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _specs = require("../specs");
|
|
8
7
|
var _events = require("../events");
|
|
9
|
-
|
|
10
|
-
if (!_specs.NativeAudioAPIModule) {
|
|
11
|
-
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
12
|
-
}
|
|
13
|
-
_specs.NativeAudioAPIModule.install();
|
|
14
|
-
}
|
|
8
|
+
var _specs = require("../specs");
|
|
15
9
|
class AudioManager {
|
|
16
10
|
constructor() {
|
|
17
11
|
this.audioEventEmitter = new _events.AudioEventEmitter(global.AudioEventEmitter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_events","require","_specs","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AAQA,MAAME,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIC,yBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAE,4BAA4BA,CAAA,EAAW;IACrC,OAAOC,2BAAoB,CAAED,4BAA4B,CAAC,CAAC;EAC7D;EAEAE,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOF,2BAAoB,CAAEC,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CJ,2BAAoB,CAAEG,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,wBAAwBA,CAAA,EAAG;IACzBT,2BAAoB,CAAES,wBAAwB,CAAC,CAAC;EAClD;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtCX,2BAAoB,CAAEU,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBZ,2BAAoB,CAAEY,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACX,OAAgB,EAAE;IAC1CF,2BAAoB,CAAEa,yBAAyB,CAACX,OAAO,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEY,sBAAsBA,CAACZ,OAAgB,EAAE;IACvCF,2BAAoB,CAAEc,sBAAsB,CAACZ,OAAO,CAAC;EACvD;EAEAa,oBAAoBA,CAACb,OAAgB,EAAE;IACrCF,2BAAoB,CAAEe,oBAAoB,CAACb,OAAO,CAAC;EACrD;EAEAc,mBAAmBA,CAACC,IAA4B,EAAEf,OAAgB,EAAE;IAClEF,2BAAoB,CAAEgB,mBAAmB,CAACC,IAAI,EAAEf,OAAO,CAAC;EAC1D;EAEAgB,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAACvB,iBAAiB,CAACwB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOrB,2BAAoB,CAAEqB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOtB,2BAAoB,CAAEsB,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAOvB,2BAAoB,CAAEuB,cAAc,CAAC,CAAC;EAC/C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAIhC,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,31 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.assertWorkletsEnabled = assertWorkletsEnabled;
|
|
7
7
|
exports.clamp = clamp;
|
|
8
|
-
|
|
9
|
-
function
|
|
10
|
-
return Math.min(Math.max(value, min), max);
|
|
11
|
-
}
|
|
12
|
-
let isWorkletsAvailable = false;
|
|
13
|
-
let isWorkletsVersionSupported = exports.isWorkletsVersionSupported = false;
|
|
14
|
-
let workletsVersion = exports.workletsVersion = 'unknown';
|
|
15
|
-
const supportedWorkletsVersions = exports.supportedWorkletsVersions = ['0.6.0', '0.6.1'];
|
|
16
|
-
let workletsModule = exports.workletsModule = void 0;
|
|
8
|
+
var _AudioAPIModule = _interopRequireDefault(require("../AudioAPIModule"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
10
|
function assertWorkletsEnabled() {
|
|
18
|
-
if (!
|
|
11
|
+
if (!_AudioAPIModule.default.areWorkletsAvailable) {
|
|
19
12
|
throw new Error('[react-native-audio-api]: Worklets are not available. Please install react-native-worklets to use this feature.');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
}
|
|
14
|
+
if (!_AudioAPIModule.default.isWorkletsVersionSupported) {
|
|
15
|
+
throw new Error(`[react-native-audio-api]: Worklets version ${_AudioAPIModule.default.workletsVersion} is not supported.
|
|
16
|
+
Please install react-native-worklets of one of the following versions: [${_AudioAPIModule.default.supportedWorkletsVersion.join(', ')}] to use this feature.`);
|
|
23
17
|
}
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const workletsModuleJson = require('react-native-worklets/package.json');
|
|
28
|
-
exports.isWorkletsVersionSupported = isWorkletsVersionSupported = supportedWorkletsVersions.includes(workletsModuleJson.version);
|
|
29
|
-
isWorkletsAvailable = true;
|
|
30
|
-
exports.workletsVersion = workletsVersion = workletsModuleJson.version;
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
32
|
-
} catch (error) {
|
|
33
|
-
isWorkletsAvailable = false;
|
|
19
|
+
function clamp(value, min, max) {
|
|
20
|
+
return Math.min(Math.max(value, min), max);
|
|
34
21
|
}
|
|
35
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_AudioAPIModule","_interopRequireDefault","require","e","__esModule","default","assertWorkletsEnabled","AudioAPIModule","areWorkletsAvailable","Error","isWorkletsVersionSupported","workletsVersion","supportedWorkletsVersion","join","clamp","value","min","max","Math"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExC,SAASG,qBAAqBA,CAAA,EAAG;EACtC,IAAI,CAACC,uBAAc,CAACC,oBAAoB,EAAE;IACxC,MAAM,IAAIC,KAAK,CACb,iHACF,CAAC;EACH;EAEA,IAAI,CAACF,uBAAc,CAACG,0BAA0B,EAAE;IAC9C,MAAM,IAAID,KAAK,CACb,8CAA8CF,uBAAc,CAACI,eAAe;AAClF,gFAAgFJ,uBAAc,CAACK,wBAAwB,CAACC,IAAI,CAAC,IAAI,CAAC,wBAC9H,CAAC;EACH;AACF;AAEO,SAASC,KAAKA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,EAAU;EACrE,OAAOC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC5C","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NativeAudioAPIModule } from "../specs/index.js";
|
|
4
|
+
|
|
5
|
+
// Hint: Copied from react-native-worklets
|
|
6
|
+
// Doesn't really matter what is inside, just need a unique type
|
|
7
|
+
|
|
8
|
+
class AudioAPIModule {
|
|
9
|
+
#workletsModule_ = null;
|
|
10
|
+
#canUseWorklets_ = false;
|
|
11
|
+
#workletsVersion = 'unknown';
|
|
12
|
+
#workletsAvailable_ = false;
|
|
13
|
+
supportedWorkletsVersion = ['0.6.0', '0.6.1'];
|
|
14
|
+
constructor() {
|
|
15
|
+
// Important! Verify and import worklets first
|
|
16
|
+
// otherwise the native module installation might crash
|
|
17
|
+
// if react-native-worklets is not imported before audio-api
|
|
18
|
+
this.#verifyWorklets();
|
|
19
|
+
if (this.#verifyInstallation()) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!NativeAudioAPIModule) {
|
|
23
|
+
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
24
|
+
}
|
|
25
|
+
NativeAudioAPIModule.install();
|
|
26
|
+
}
|
|
27
|
+
#verifyWorklets() {
|
|
28
|
+
try {
|
|
29
|
+
const workletsPackage = require('react-native-worklets');
|
|
30
|
+
const workletsPackageJson = require('react-native-worklets/package.json');
|
|
31
|
+
this.#workletsVersion = workletsPackageJson.version;
|
|
32
|
+
this.#workletsAvailable_ = true;
|
|
33
|
+
this.#canUseWorklets_ = this.supportedWorkletsVersion.includes(workletsPackageJson.version);
|
|
34
|
+
if (this.#canUseWorklets_) {
|
|
35
|
+
this.#workletsModule_ = workletsPackage;
|
|
36
|
+
}
|
|
37
|
+
return this.#canUseWorklets_;
|
|
38
|
+
} catch {
|
|
39
|
+
this.#canUseWorklets_ = false;
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
#verifyInstallation() {
|
|
44
|
+
return global.createAudioContext != null && global.createOfflineAudioContext != null && global.createAudioRecorder != null && global.createAudioDecoder != null && global.createAudioStretcher != null && global.AudioEventEmitter != null;
|
|
45
|
+
}
|
|
46
|
+
get workletsModule() {
|
|
47
|
+
return this.#workletsModule_;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Indicates whether react-native-worklets are installed in matching version,
|
|
52
|
+
* for usage with react-native-audio-api.
|
|
53
|
+
*/
|
|
54
|
+
get canUseWorklets() {
|
|
55
|
+
return this.#canUseWorklets_;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Returns the installed worklets version or 'unknown'. */
|
|
59
|
+
get workletsVersion() {
|
|
60
|
+
return this.#workletsVersion;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Indicates whether react-native-worklets are installed, regardless of
|
|
65
|
+
* version support. Useful for asserting compatibility.
|
|
66
|
+
*/
|
|
67
|
+
get areWorkletsAvailable() {
|
|
68
|
+
return this.#workletsAvailable_;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Indicates whether the installed react-native-worklets version is supported.
|
|
73
|
+
* Useful for asserting compatibility.
|
|
74
|
+
*/
|
|
75
|
+
get isWorkletsVersionSupported() {
|
|
76
|
+
// Note: if areWorkletsAvailable is true, canUseWorklets is equivalent to version check
|
|
77
|
+
return this.#canUseWorklets_;
|
|
78
|
+
}
|
|
79
|
+
createAudioRuntime() {
|
|
80
|
+
if (!this.#canUseWorklets_) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return this.#workletsModule_.createWorkletRuntime('AudioWorkletRuntime');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export default new AudioAPIModule();
|
|
87
|
+
//# sourceMappingURL=AudioAPIModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeAudioAPIModule","AudioAPIModule","workletsModule_","canUseWorklets_","workletsVersion","workletsAvailable_","supportedWorkletsVersion","constructor","verifyWorklets","verifyInstallation","Error","install","#verifyWorklets","workletsPackage","require","workletsPackageJson","version","includes","#verifyInstallation","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","createAudioDecoder","createAudioStretcher","AudioEventEmitter","workletsModule","canUseWorklets","areWorkletsAvailable","isWorkletsVersionSupported","createAudioRuntime","createWorkletRuntime"],"sourceRoot":"../../../src","sources":["AudioAPIModule/AudioAPIModule.ts"],"mappings":";;AACA,SAASA,oBAAoB,QAAQ,mBAAU;;AAE/C;AACA;;AAcA,MAAMC,cAAc,CAAC;EACnB,CAACC,eAAe,GAA2B,IAAI;EAC/C,CAACC,eAAe,GAAG,KAAK;EACxB,CAACC,eAAe,GAAG,SAAS;EAC5B,CAACC,kBAAkB,GAAG,KAAK;EAEpBC,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;EAEpDC,WAAWA,CAAA,EAAG;IACZ;IACA;IACA;IACA,IAAI,CAAC,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAI,IAAI,CAAC,CAACC,kBAAkB,CAAC,CAAC,EAAE;MAC9B;IACF;IAEA,IAAI,CAACT,oBAAoB,EAAE;MACzB,MAAM,IAAIU,KAAK,CACb,iFACF,CAAC;IACH;IAEAV,oBAAoB,CAACW,OAAO,CAAC,CAAC;EAChC;EAEA,CAACH,cAAcI,CAAA,EAAY;IACzB,IAAI;MACF,MAAMC,eAAe,GAAGC,OAAO,CAAC,uBAAuB,CAAC;MACxD,MAAMC,mBAAmB,GAAGD,OAAO,CAAC,oCAAoC,CAAC;MACzE,IAAI,CAAC,CAACV,eAAe,GAAGW,mBAAmB,CAACC,OAAO;MACnD,IAAI,CAAC,CAACX,kBAAkB,GAAG,IAAI;MAE/B,IAAI,CAAC,CAACF,eAAe,GAAG,IAAI,CAACG,wBAAwB,CAACW,QAAQ,CAC5DF,mBAAmB,CAACC,OACtB,CAAC;MAED,IAAI,IAAI,CAAC,CAACb,eAAe,EAAE;QACzB,IAAI,CAAC,CAACD,eAAe,GAAGW,eAAe;MACzC;MAEA,OAAO,IAAI,CAAC,CAACV,eAAe;IAC9B,CAAC,CAAC,MAAM;MACN,IAAI,CAAC,CAACA,eAAe,GAAG,KAAK;MAC7B,OAAO,KAAK;IACd;EACF;EAEA,CAACM,kBAAkBS,CAAA,EAAY;IAC7B,OACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,kBAAkB,IAAI,IAAI,IACjCJ,MAAM,CAACK,oBAAoB,IAAI,IAAI,IACnCL,MAAM,CAACM,iBAAiB,IAAI,IAAI;EAEpC;EAEA,IAAIC,cAAcA,CAAA,EAA2B;IAC3C,OAAO,IAAI,CAAC,CAACxB,eAAe;EAC9B;;EAEA;AACF;AACA;AACA;EACE,IAAIyB,cAAcA,CAAA,EAAY;IAC5B,OAAO,IAAI,CAAC,CAACxB,eAAe;EAC9B;;EAEA;EACA,IAAIC,eAAeA,CAAA,EAAW;IAC5B,OAAO,IAAI,CAAC,CAACA,eAAe;EAC9B;;EAEA;AACF;AACA;AACA;EACE,IAAIwB,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAAC,CAACvB,kBAAkB;EACjC;;EAEA;AACF;AACA;AACA;EACE,IAAIwB,0BAA0BA,CAAA,EAAY;IACxC;IACA,OAAO,IAAI,CAAC,CAAC1B,eAAe;EAC9B;EAEO2B,kBAAkBA,CAAA,EAA0B;IACjD,IAAI,CAAC,IAAI,CAAC,CAAC3B,eAAe,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAAC,CAACD,eAAe,CAAE6B,oBAAoB,CAAC,qBAAqB,CAAC;EAC3E;AACF;AAEA,eAAe,IAAI9B,cAAc,CAAC,CAAC","ignoreList":[]}
|