react-native-audio-api 0.10.0 → 0.10.2
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/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +3 -3
- package/common/cpp/test/src/AudioParamTest.cpp +1 -1
- package/common/cpp/test/src/AudioScheduledSourceTest.cpp +134 -0
- package/common/cpp/test/src/ConstantSourceTest.cpp +1 -1
- package/common/cpp/test/src/GainTest.cpp +1 -1
- package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +4 -4
- package/common/cpp/test/src/OscillatorTest.cpp +1 -1
- package/common/cpp/test/src/StereoPannerTest.cpp +1 -1
- package/common/cpp/test/src/biquad/BiquadFilterTest.h +1 -1
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +2 -1
- 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 +8 -7
- 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 +9 -8
- 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 +4 -4
- 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 +6 -2
- package/scripts/validate-worklets-version.js +4 -5
- package/src/AudioAPIModule/AudioAPIModule.ts +122 -0
- package/src/AudioAPIModule/globals.d.ts +35 -0
- package/src/AudioAPIModule/index.ts +1 -0
- package/src/api.ts +20 -72
- package/src/core/AudioContext.ts +4 -7
- package/src/core/BaseAudioContext.ts +58 -47
- package/src/core/OfflineAudioContext.ts +4 -7
- package/src/system/AudioManager.ts +9 -19
- package/src/utils/index.ts +9 -35
|
@@ -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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["AudioAPIModule/globals.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default"],"sourceRoot":"../../../src","sources":["AudioAPIModule/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAkB","ignoreList":[]}
|
package/lib/module/api.js
CHANGED
|
@@ -1,45 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
/* eslint-disable no-var */
|
|
6
|
-
|
|
7
|
-
/* eslint-disable no-var */
|
|
8
|
-
|
|
9
|
-
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.createAudioDecoder == null || global.createAudioStretcher == null || global.AudioEventEmitter == null) {
|
|
10
|
-
if (!NativeAudioAPIModule) {
|
|
11
|
-
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
12
|
-
}
|
|
13
|
-
NativeAudioAPIModule.install();
|
|
14
|
-
}
|
|
15
|
-
export { default as WorkletNode } from "./core/WorkletNode.js";
|
|
16
|
-
export { default as WorkletSourceNode } from "./core/WorkletSourceNode.js";
|
|
17
|
-
export { default as WorkletProcessingNode } from "./core/WorkletProcessingNode.js";
|
|
18
|
-
export { default as RecorderAdapterNode } from "./core/RecorderAdapterNode.js";
|
|
3
|
+
import "./AudioAPIModule/index.js";
|
|
4
|
+
export { default as AnalyserNode } from "./core/AnalyserNode.js";
|
|
19
5
|
export { default as AudioBuffer } from "./core/AudioBuffer.js";
|
|
20
|
-
export { default as AudioBufferSourceNode } from "./core/AudioBufferSourceNode.js";
|
|
21
6
|
export { default as AudioBufferQueueSourceNode } from "./core/AudioBufferQueueSourceNode.js";
|
|
7
|
+
export { default as AudioBufferSourceNode } from "./core/AudioBufferSourceNode.js";
|
|
22
8
|
export { default as AudioContext } from "./core/AudioContext.js";
|
|
23
|
-
export {
|
|
9
|
+
export { decodeAudioData, decodePCMInBase64 } from "./core/AudioDecoder.js";
|
|
24
10
|
export { default as AudioDestinationNode } from "./core/AudioDestinationNode.js";
|
|
25
11
|
export { default as AudioNode } from "./core/AudioNode.js";
|
|
26
|
-
export { default as AnalyserNode } from "./core/AnalyserNode.js";
|
|
27
12
|
export { default as AudioParam } from "./core/AudioParam.js";
|
|
13
|
+
export { default as AudioRecorder } from "./core/AudioRecorder.js";
|
|
28
14
|
export { default as AudioScheduledSourceNode } from "./core/AudioScheduledSourceNode.js";
|
|
15
|
+
export { default as changePlaybackSpeed } from "./core/AudioStretcher.js";
|
|
29
16
|
export { default as BaseAudioContext } from "./core/BaseAudioContext.js";
|
|
30
17
|
export { default as BiquadFilterNode } from "./core/BiquadFilterNode.js";
|
|
18
|
+
export { default as ConstantSourceNode } from "./core/ConstantSourceNode.js";
|
|
19
|
+
export { default as ConvolverNode } from "./core/ConvolverNode.js";
|
|
31
20
|
export { default as GainNode } from "./core/GainNode.js";
|
|
21
|
+
export { default as OfflineAudioContext } from "./core/OfflineAudioContext.js";
|
|
32
22
|
export { default as OscillatorNode } from "./core/OscillatorNode.js";
|
|
23
|
+
export { default as RecorderAdapterNode } from "./core/RecorderAdapterNode.js";
|
|
33
24
|
export { default as StereoPannerNode } from "./core/StereoPannerNode.js";
|
|
34
|
-
export { default as AudioRecorder } from "./core/AudioRecorder.js";
|
|
35
25
|
export { default as StreamerNode } from "./core/StreamerNode.js";
|
|
36
|
-
export { default as
|
|
37
|
-
export { default as
|
|
38
|
-
export { default as
|
|
26
|
+
export { default as WorkletNode } from "./core/WorkletNode.js";
|
|
27
|
+
export { default as WorkletProcessingNode } from "./core/WorkletProcessingNode.js";
|
|
28
|
+
export { default as WorkletSourceNode } from "./core/WorkletSourceNode.js";
|
|
39
29
|
export { default as useSystemVolume } from "./hooks/useSystemVolume.js";
|
|
40
|
-
export {
|
|
41
|
-
export {
|
|
42
|
-
export {
|
|
43
|
-
export {
|
|
44
|
-
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError } from "./errors/index.js";
|
|
30
|
+
export { default as AudioManager } from "./system/index.js";
|
|
31
|
+
export { AudioWorkletRuntime, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, OscillatorType, PeriodicWaveConstraints, WindowType } from "./types.js";
|
|
32
|
+
export { IOSCategory, IOSMode, IOSOption, LockScreenInfo, MediaState, PermissionStatus, SessionOptions } from "./system/types.js";
|
|
33
|
+
export { IndexSizeError, InvalidAccessError, InvalidStateError, NotSupportedError, RangeError } from "./errors/index.js";
|
|
45
34
|
//# sourceMappingURL=api.js.map
|
package/lib/module/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["default","AnalyserNode","AudioBuffer","AudioBufferQueueSourceNode","AudioBufferSourceNode","AudioContext","decodeAudioData","decodePCMInBase64","AudioDestinationNode","AudioNode","AudioParam","AudioRecorder","AudioScheduledSourceNode","changePlaybackSpeed","BaseAudioContext","BiquadFilterNode","ConstantSourceNode","ConvolverNode","GainNode","OfflineAudioContext","OscillatorNode","RecorderAdapterNode","StereoPannerNode","StreamerNode","WorkletNode","WorkletProcessingNode","WorkletSourceNode","useSystemVolume","AudioManager","AudioWorkletRuntime","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","OscillatorType","PeriodicWaveConstraints","WindowType","IOSCategory","IOSMode","IOSOption","LockScreenInfo","MediaState","PermissionStatus","SessionOptions","IndexSizeError","InvalidAccessError","InvalidStateError","NotSupportedError","RangeError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,OAAO,2BAAkB;AAEzB,SAASA,OAAO,IAAIC,YAAY,QAAQ,wBAAqB;AAC7D,SAASD,OAAO,IAAIE,WAAW,QAAQ,uBAAoB;AAC3D,SAASF,OAAO,IAAIG,0BAA0B,QAAQ,sCAAmC;AACzF,SAASH,OAAO,IAAII,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASJ,OAAO,IAAIK,YAAY,QAAQ,wBAAqB;AAC7D,SAASC,eAAe,EAAEC,iBAAiB,QAAQ,wBAAqB;AACxE,SAASP,OAAO,IAAIQ,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASR,OAAO,IAAIS,SAAS,QAAQ,qBAAkB;AACvD,SAAST,OAAO,IAAIU,UAAU,QAAQ,sBAAmB;AACzD,SAASV,OAAO,IAAIW,aAAa,QAAQ,yBAAsB;AAC/D,SAASX,OAAO,IAAIY,wBAAwB,QAAQ,oCAAiC;AACrF,SAASZ,OAAO,IAAIa,mBAAmB,QAAQ,0BAAuB;AACtE,SAASb,OAAO,IAAIc,gBAAgB,QAAQ,4BAAyB;AACrE,SAASd,OAAO,IAAIe,gBAAgB,QAAQ,4BAAyB;AACrE,SAASf,OAAO,IAAIgB,kBAAkB,QAAQ,8BAA2B;AACzE,SAAShB,OAAO,IAAIiB,aAAa,QAAQ,yBAAsB;AAC/D,SAASjB,OAAO,IAAIkB,QAAQ,QAAQ,oBAAiB;AACrD,SAASlB,OAAO,IAAImB,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASnB,OAAO,IAAIoB,cAAc,QAAQ,0BAAuB;AACjE,SAASpB,OAAO,IAAIqB,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASrB,OAAO,IAAIsB,gBAAgB,QAAQ,4BAAyB;AACrE,SAAStB,OAAO,IAAIuB,YAAY,QAAQ,wBAAqB;AAC7D,SAASvB,OAAO,IAAIwB,WAAW,QAAQ,uBAAoB;AAC3D,SAASxB,OAAO,IAAIyB,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASzB,OAAO,IAAI0B,iBAAiB,QAAQ,6BAA0B;AACvE,SAAS1B,OAAO,IAAI2B,eAAe,QAAQ,4BAAyB;AACpE,SAAS3B,OAAO,IAAI4B,YAAY,QAAQ,mBAAU;AAElD,SACEC,mBAAmB,EACnBC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,cAAc,EACdC,uBAAuB,EACvBC,UAAU,QACL,YAAS;AAEhB,SACEC,WAAW,EACXC,OAAO,EACPC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAChBC,cAAc,QACT,mBAAgB;AAEvB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,iBAAiB,EACjBC,UAAU,QACL,mBAAU","ignoreList":[]}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import AudioManager from "../system/index.js";
|
|
3
|
+
import AudioAPIModule from "../AudioAPIModule/index.js";
|
|
5
4
|
import { NotSupportedError } from "../errors/index.js";
|
|
6
|
-
import
|
|
5
|
+
import AudioManager from "../system/index.js";
|
|
6
|
+
import BaseAudioContext from "./BaseAudioContext.js";
|
|
7
7
|
export default class AudioContext extends BaseAudioContext {
|
|
8
8
|
constructor(options) {
|
|
9
9
|
if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
|
|
10
10
|
throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
if (isWorkletsVersionSupported) {
|
|
14
|
-
audioRuntime = workletsModule.createWorkletRuntime('AudioWorkletRuntime');
|
|
15
|
-
}
|
|
12
|
+
const audioRuntime = AudioAPIModule.createAudioRuntime();
|
|
16
13
|
super(global.createAudioContext(options?.sampleRate || AudioManager.getDevicePreferredSampleRate(), options?.initSuspended || false, audioRuntime));
|
|
17
14
|
}
|
|
18
15
|
async close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["AudioAPIModule","NotSupportedError","AudioManager","BaseAudioContext","AudioContext","constructor","options","sampleRate","audioRuntime","createAudioRuntime","global","createAudioContext","getDevicePreferredSampleRate","initSuspended","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AAAA,OAAOA,cAAc,MAAM,4BAAmB;AAC9C,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,OAAOC,YAAY,MAAM,oBAAW;AAEpC,OAAOC,gBAAgB,MAAM,uBAAoB;AAEjD,eAAe,MAAMC,YAAY,SAASD,gBAAgB,CAAC;EACzDE,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,IAAIN,iBAAiB,CACzB,6CAA6CK,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,MAAMC,YAAY,GAAGR,cAAc,CAACS,kBAAkB,CAAC,CAAC;IAExD,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBL,OAAO,EAAEC,UAAU,IAAIL,YAAY,CAACU,4BAA4B,CAAC,CAAC,EAClEN,OAAO,EAAEO,aAAa,IAAI,KAAK,EAC/BL,YACF,CACF,CAAC;EACH;EAEA,MAAMM,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","ignoreList":[]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import AudioAPIModule from "../AudioAPIModule/index.js";
|
|
3
4
|
import { InvalidAccessError, NotSupportedError } from "../errors/index.js";
|
|
4
|
-
import { assertWorkletsEnabled
|
|
5
|
-
import WorkletSourceNode from "./WorkletSourceNode.js";
|
|
6
|
-
import WorkletProcessingNode from "./WorkletProcessingNode.js";
|
|
5
|
+
import { assertWorkletsEnabled } from "../utils/index.js";
|
|
7
6
|
import AnalyserNode from "./AnalyserNode.js";
|
|
8
7
|
import AudioBuffer from "./AudioBuffer.js";
|
|
9
8
|
import AudioBufferQueueSourceNode from "./AudioBufferQueueSourceNode.js";
|
|
10
|
-
import ConvolverNode from "./ConvolverNode.js";
|
|
11
9
|
import AudioBufferSourceNode from "./AudioBufferSourceNode.js";
|
|
10
|
+
import { decodeAudioData, decodePCMInBase64 } from "./AudioDecoder.js";
|
|
12
11
|
import AudioDestinationNode from "./AudioDestinationNode.js";
|
|
13
12
|
import BiquadFilterNode from "./BiquadFilterNode.js";
|
|
14
13
|
import ConstantSourceNode from "./ConstantSourceNode.js";
|
|
14
|
+
import ConvolverNode from "./ConvolverNode.js";
|
|
15
15
|
import GainNode from "./GainNode.js";
|
|
16
16
|
import OscillatorNode from "./OscillatorNode.js";
|
|
17
17
|
import PeriodicWave from "./PeriodicWave.js";
|
|
@@ -19,7 +19,8 @@ import RecorderAdapterNode from "./RecorderAdapterNode.js";
|
|
|
19
19
|
import StereoPannerNode from "./StereoPannerNode.js";
|
|
20
20
|
import StreamerNode from "./StreamerNode.js";
|
|
21
21
|
import WorkletNode from "./WorkletNode.js";
|
|
22
|
-
import
|
|
22
|
+
import WorkletProcessingNode from "./WorkletProcessingNode.js";
|
|
23
|
+
import WorkletSourceNode from "./WorkletSourceNode.js";
|
|
23
24
|
export default class BaseAudioContext {
|
|
24
25
|
constructor(context) {
|
|
25
26
|
this.context = context;
|
|
@@ -49,7 +50,7 @@ export default class BaseAudioContext {
|
|
|
49
50
|
throw new NotSupportedError(`The buffer length provided (${bufferLength}) can not be less than 1`);
|
|
50
51
|
}
|
|
51
52
|
assertWorkletsEnabled();
|
|
52
|
-
const shareableWorklet = workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
|
|
53
|
+
const shareableWorklet = AudioAPIModule.workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
|
|
53
54
|
'worklet';
|
|
54
55
|
|
|
55
56
|
const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
|
|
@@ -59,7 +60,7 @@ export default class BaseAudioContext {
|
|
|
59
60
|
}
|
|
60
61
|
createWorkletProcessingNode(callback, workletRuntime = 'AudioRuntime') {
|
|
61
62
|
assertWorkletsEnabled();
|
|
62
|
-
const shareableWorklet = workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
|
|
63
|
+
const shareableWorklet = AudioAPIModule.workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
|
|
63
64
|
'worklet';
|
|
64
65
|
|
|
65
66
|
const inputData = inputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
|
|
@@ -70,7 +71,7 @@ export default class BaseAudioContext {
|
|
|
70
71
|
}
|
|
71
72
|
createWorkletSourceNode(callback, workletRuntime = 'AudioRuntime') {
|
|
72
73
|
assertWorkletsEnabled();
|
|
73
|
-
const shareableWorklet = workletsModule.makeShareableCloneRecursive((audioBuffers, framesToProcess, currentTime, startOffset) => {
|
|
74
|
+
const shareableWorklet = AudioAPIModule.workletsModule.makeShareableCloneRecursive((audioBuffers, framesToProcess, currentTime, startOffset) => {
|
|
74
75
|
'worklet';
|
|
75
76
|
|
|
76
77
|
const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InvalidAccessError","NotSupportedError","assertWorkletsEnabled","
|
|
1
|
+
{"version":3,"names":["AudioAPIModule","InvalidAccessError","NotSupportedError","assertWorkletsEnabled","AnalyserNode","AudioBuffer","AudioBufferQueueSourceNode","AudioBufferSourceNode","decodeAudioData","decodePCMInBase64","AudioDestinationNode","BiquadFilterNode","ConstantSourceNode","ConvolverNode","GainNode","OscillatorNode","PeriodicWave","RecorderAdapterNode","StereoPannerNode","StreamerNode","WorkletNode","WorkletProcessingNode","WorkletSourceNode","BaseAudioContext","constructor","context","destination","sampleRate","currentTime","state","input","ArrayBuffer","TypeError","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","shareableWorklet","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","createWorkletSourceNode","startOffset","createRecorderAdapter","createOscillator","createStreamer","createConstantSource","createGain","createStereoPanner","createBiquadFilter","createBufferSource","options","pitchCorrection","createBufferQueueSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","disableNormalization","createAnalyser","createConvolver","numberOfChannels"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AudioAPIModule from "../AudioAPIModule/index.js";
|
|
4
4
|
import { InvalidStateError, NotSupportedError } from "../errors/index.js";
|
|
5
5
|
import AudioBuffer from "./AudioBuffer.js";
|
|
6
|
-
import
|
|
6
|
+
import BaseAudioContext from "./BaseAudioContext.js";
|
|
7
7
|
export default class OfflineAudioContext extends BaseAudioContext {
|
|
8
8
|
constructor(arg0, arg1, arg2) {
|
|
9
|
-
|
|
10
|
-
if (isWorkletsVersionSupported) {
|
|
11
|
-
audioRuntime = workletsModule.createWorkletRuntime('AudioWorkletRuntime');
|
|
12
|
-
}
|
|
9
|
+
const audioRuntime = AudioAPIModule.createAudioRuntime();
|
|
13
10
|
if (typeof arg0 === 'object') {
|
|
14
11
|
const {
|
|
15
12
|
numberOfChannels,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["AudioAPIModule","InvalidStateError","NotSupportedError","AudioBuffer","BaseAudioContext","OfflineAudioContext","constructor","arg0","arg1","arg2","audioRuntime","createAudioRuntime","numberOfChannels","length","sampleRate","global","createOfflineAudioContext","duration","isSuspended","isRendering","resume","context","suspend","suspendTime","currentTime","startRendering","audioBuffer"],"sourceRoot":"../../../src","sources":["core/OfflineAudioContext.ts"],"mappings":";;AAAA,OAAOA,cAAc,MAAM,4BAAmB;AAC9C,SAASC,iBAAiB,EAAEC,iBAAiB,QAAQ,oBAAW;AAGhE,OAAOC,WAAW,MAAM,kBAAe;AACvC,OAAOC,gBAAgB,MAAM,uBAAoB;AAEjD,eAAe,MAAMC,mBAAmB,SAASD,gBAAgB,CAAC;EAOhEE,WAAWA,CACTC,IAAyC,EACzCC,IAAa,EACbC,IAAa,EACb;IACA,MAAMC,YAAY,GAAGV,cAAc,CAACW,kBAAkB,CAAC,CAAC;IAExD,IAAI,OAAOJ,IAAI,KAAK,QAAQ,EAAE;MAC5B,MAAM;QAAEK,gBAAgB;QAAEC,MAAM;QAAEC;MAAW,CAAC,GAAGP,IAAI;MACrD,KAAK,CACHQ,MAAM,CAACC,yBAAyB,CAC9BJ,gBAAgB,EAChBC,MAAM,EACNC,UAAU,EACVJ,YACF,CACF,CAAC;MAED,IAAI,CAACO,QAAQ,GAAGJ,MAAM,GAAGC,UAAU;IACrC,CAAC,MAAM,IACL,OAAOP,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,EACxB;MACA,KAAK,CAACM,MAAM,CAACC,yBAAyB,CAACT,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,YAAY,CAAC,CAAC;MACvE,IAAI,CAACO,QAAQ,GAAGT,IAAI,GAAGC,IAAI;IAC7B,CAAC,MAAM;MACL,MAAM,IAAIP,iBAAiB,CAAC,+BAA+B,CAAC;IAC9D;IAEA,IAAI,CAACgB,WAAW,GAAG,KAAK;IACxB,IAAI,CAACC,WAAW,GAAG,KAAK;EAC1B;EAEA,MAAMC,MAAMA,CAAA,EAAuB;IACjC,IAAI,CAAC,IAAI,CAACD,WAAW,EAAE;MACrB,MAAM,IAAIlB,iBAAiB,CACzB,sDACF,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACiB,WAAW,EAAE;MACrB,MAAM,IAAIjB,iBAAiB,CACzB,4DACF,CAAC;IACH;IAEA,IAAI,CAACiB,WAAW,GAAG,KAAK;IAExB,MAAO,IAAI,CAACG,OAAO,CAA0BD,MAAM,CAAC,CAAC;EACvD;EAEA,MAAME,OAAOA,CAACC,WAAmB,EAAsB;IACrD,IAAIA,WAAW,GAAG,CAAC,EAAE;MACnB,MAAM,IAAItB,iBAAiB,CAAC,2CAA2C,CAAC;IAC1E;IAEA,IAAIsB,WAAW,GAAG,IAAI,CAACF,OAAO,CAACG,WAAW,EAAE;MAC1C,MAAM,IAAIvB,iBAAiB,CACzB,sDAAsDsB,WAAW,EACnE,CAAC;IACH;IAEA,IAAIA,WAAW,GAAG,IAAI,CAACN,QAAQ,EAAE;MAC/B,MAAM,IAAIhB,iBAAiB,CACzB,8DAA8DsB,WAAW,EAC3E,CAAC;IACH;IAEA,IAAI,CAACL,WAAW,GAAG,IAAI;IAEvB,MAAO,IAAI,CAACG,OAAO,CAA0BC,OAAO,CAACC,WAAW,CAAC;EACnE;EAEA,MAAME,cAAcA,CAAA,EAAyB;IAC3C,IAAI,IAAI,CAACN,WAAW,EAAE;MACpB,MAAM,IAAIlB,iBAAiB,CAAC,0CAA0C,CAAC;IACzE;IAEA,IAAI,CAACkB,WAAW,GAAG,IAAI;IAEvB,MAAMO,WAAW,GAAG,MAClB,IAAI,CAACL,OAAO,CACZI,cAAc,CAAC,CAAC;IAElB,OAAO,IAAItB,WAAW,CAACuB,WAAW,CAAC;EACrC;AACF","ignoreList":[]}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { NativeAudioAPIModule } from "../specs/index.js";
|
|
4
3
|
import { AudioEventEmitter } from "../events/index.js";
|
|
5
|
-
|
|
6
|
-
if (!NativeAudioAPIModule) {
|
|
7
|
-
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
8
|
-
}
|
|
9
|
-
NativeAudioAPIModule.install();
|
|
10
|
-
}
|
|
4
|
+
import { NativeAudioAPIModule } from "../specs/index.js";
|
|
11
5
|
class AudioManager {
|
|
12
6
|
constructor() {
|
|
13
7
|
this.audioEventEmitter = new AudioEventEmitter(global.AudioEventEmitter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["AudioEventEmitter","NativeAudioAPIModule","AudioManager","constructor","audioEventEmitter","global","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAgC,oBAAW;AAMrE,SAASC,oBAAoB,QAAQ,mBAAU;AAQ/C,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIJ,iBAAiB,CAACK,MAAM,CAACL,iBAAiB,CAAC;EAC1E;EAEAM,4BAA4BA,CAAA,EAAW;IACrC,OAAOL,oBAAoB,CAAEK,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOP,oBAAoB,CAAEM,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CT,oBAAoB,CAAEQ,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;IACzBd,oBAAoB,CAAEc,wBAAwB,CAAC,CAAC;EAClD;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtChB,oBAAoB,CAAEe,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBjB,oBAAoB,CAAEiB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACX,OAAgB,EAAE;IAC1CP,oBAAoB,CAAEkB,yBAAyB,CAACX,OAAO,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEY,sBAAsBA,CAACZ,OAAgB,EAAE;IACvCP,oBAAoB,CAAEmB,sBAAsB,CAACZ,OAAO,CAAC;EACvD;EAEAa,oBAAoBA,CAACb,OAAgB,EAAE;IACrCP,oBAAoB,CAAEoB,oBAAoB,CAACb,OAAO,CAAC;EACrD;EAEAc,mBAAmBA,CAACC,IAA4B,EAAEf,OAAgB,EAAE;IAClEP,oBAAoB,CAAEqB,mBAAmB,CAACC,IAAI,EAAEf,OAAO,CAAC;EAC1D;EAEAgB,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAACrB,iBAAiB,CAACsB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAO1B,oBAAoB,CAAE0B,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO3B,oBAAoB,CAAE2B,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAO5B,oBAAoB,CAAE4B,cAAc,CAAC,CAAC;EAC/C;AACF;AAEA,eAAe,IAAI3B,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,29 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
return Math.min(Math.max(value, min), max);
|
|
5
|
-
}
|
|
6
|
-
let isWorkletsAvailable = false;
|
|
7
|
-
export let isWorkletsVersionSupported = false;
|
|
8
|
-
export let workletsVersion = 'unknown';
|
|
9
|
-
export const supportedWorkletsVersions = ['0.6.0', '0.6.1'];
|
|
10
|
-
export let workletsModule;
|
|
3
|
+
import AudioAPIModule from "../AudioAPIModule/index.js";
|
|
11
4
|
export function assertWorkletsEnabled() {
|
|
12
|
-
if (!
|
|
5
|
+
if (!AudioAPIModule.areWorkletsAvailable) {
|
|
13
6
|
throw new Error('[react-native-audio-api]: Worklets are not available. Please install react-native-worklets to use this feature.');
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
}
|
|
8
|
+
if (!AudioAPIModule.isWorkletsVersionSupported) {
|
|
9
|
+
throw new Error(`[react-native-audio-api]: Worklets version ${AudioAPIModule.workletsVersion} is not supported.
|
|
10
|
+
Please install react-native-worklets of one of the following versions: [${AudioAPIModule.supportedWorkletsVersion.join(', ')}] to use this feature.`);
|
|
17
11
|
}
|
|
18
12
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const workletsModuleJson = require('react-native-worklets/package.json');
|
|
22
|
-
isWorkletsVersionSupported = supportedWorkletsVersions.includes(workletsModuleJson.version);
|
|
23
|
-
isWorkletsAvailable = true;
|
|
24
|
-
workletsVersion = workletsModuleJson.version;
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
26
|
-
} catch (error) {
|
|
27
|
-
isWorkletsAvailable = false;
|
|
13
|
+
export function clamp(value, min, max) {
|
|
14
|
+
return Math.min(Math.max(value, min), max);
|
|
28
15
|
}
|
|
29
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["AudioAPIModule","assertWorkletsEnabled","areWorkletsAvailable","Error","isWorkletsVersionSupported","workletsVersion","supportedWorkletsVersion","join","clamp","value","min","max","Math"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA,OAAOA,cAAc,MAAM,4BAAmB;AAE9C,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAI,CAACD,cAAc,CAACE,oBAAoB,EAAE;IACxC,MAAM,IAAIC,KAAK,CACb,iHACF,CAAC;EACH;EAEA,IAAI,CAACH,cAAc,CAACI,0BAA0B,EAAE;IAC9C,MAAM,IAAID,KAAK,CACb,8CAA8CH,cAAc,CAACK,eAAe;AAClF,gFAAgFL,cAAc,CAACM,wBAAwB,CAACC,IAAI,CAAC,IAAI,CAAC,wBAC9H,CAAC;EACH;AACF;AAEA,OAAO,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":[]}
|