react-native-audio-api 0.3.1 → 0.3.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/RNAudioAPI.podspec +40 -29
- package/android/CMakeLists.txt +17 -21
- package/android/build.gradle +26 -9
- package/android/src/main/cpp/OnLoad.cpp +1 -1
- package/android/src/main/cpp/core/AudioAPIInstaller.cpp +37 -0
- package/android/src/main/cpp/{AudioAPIInstaller → core}/AudioAPIInstaller.h +4 -13
- package/android/src/main/cpp/{AudioDecoder → core}/AudioDecoder.cpp +0 -8
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +2 -0
- package/android/src/main/java/com/swmansion/audioapi/nativemodules/AudioAPIModule.kt +6 -4
- package/common/cpp/HostObjects/AudioParamHostObject.h +39 -2
- package/common/cpp/core/AudioBufferSourceNode.cpp +4 -3
- package/{android/src/main/cpp/AudioDecoder → common/cpp/core}/AudioDecoder.h +1 -3
- package/common/cpp/core/AudioParam.cpp +218 -58
- package/common/cpp/core/AudioParam.h +19 -15
- package/common/cpp/core/AudioScheduledSourceNode.cpp +9 -1
- package/common/cpp/core/AudioScheduledSourceNode.h +4 -1
- package/common/cpp/core/BaseAudioContext.cpp +3 -13
- package/common/cpp/core/BaseAudioContext.h +2 -4
- package/common/cpp/core/BiquadFilterNode.cpp +5 -7
- package/common/cpp/{HostObjects → core}/Constants.h +2 -4
- package/common/cpp/core/GainNode.cpp +1 -1
- package/common/cpp/core/OscillatorNode.cpp +4 -3
- package/common/cpp/core/ParamChangeEvent.cpp +58 -0
- package/common/cpp/core/{ParamChange.h → ParamChangeEvent.h} +11 -5
- package/common/cpp/core/StereoPannerNode.cpp +1 -1
- package/common/cpp/jsi/JsiHostObject.cpp +35 -30
- package/common/cpp/jsi/JsiHostObject.h +12 -6
- package/common/cpp/jsi/RuntimeAwareCache.h +57 -0
- package/common/cpp/jsi/RuntimeLifecycleMonitor.cpp +61 -0
- package/common/cpp/jsi/RuntimeLifecycleMonitor.h +32 -0
- package/common/cpp/types/BiquadFilterType.h +0 -4
- package/common/cpp/types/ChannelCountMode.h +0 -3
- package/common/cpp/types/ChannelInterpretation.h +0 -3
- package/common/cpp/types/ContextState.h +0 -3
- package/common/cpp/types/OscillatorType.h +0 -4
- package/common/cpp/types/ParamChangeEventType.h +13 -0
- package/common/cpp/utils/AudioUtils.h +1 -5
- package/common/cpp/utils/{ios/FFTFrame.cpp → FFTFrame.cpp} +30 -3
- package/common/cpp/utils/VectorMath.h +7 -33
- package/ios/AudioAPIModule.h +4 -12
- package/ios/AudioAPIModule.mm +25 -20
- package/ios/core/AudioDecoder.mm +45 -0
- package/lib/module/core/AudioBuffer.js +3 -1
- package/lib/module/core/AudioBuffer.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +5 -3
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioContext.js +3 -1
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/AudioDestinationNode.js +4 -6
- package/lib/module/core/AudioDestinationNode.js.map +1 -1
- package/lib/module/core/AudioNode.js +3 -1
- package/lib/module/core/AudioNode.js.map +1 -1
- package/lib/module/core/AudioParam.js +27 -1
- package/lib/module/core/AudioParam.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.js +4 -5
- package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +11 -9
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/BiquadFilterNode.js +5 -3
- package/lib/module/core/BiquadFilterNode.js.map +1 -1
- package/lib/module/core/GainNode.js +4 -2
- package/lib/module/core/GainNode.js.map +1 -1
- package/lib/module/core/OscillatorNode.js +5 -3
- package/lib/module/core/OscillatorNode.js.map +1 -1
- package/lib/module/core/PeriodicWave.js +2 -0
- package/lib/module/core/PeriodicWave.js.map +1 -1
- package/lib/module/core/StereoPannerNode.js +4 -2
- package/lib/module/core/StereoPannerNode.js.map +1 -1
- package/lib/module/core/types.js +1 -1
- package/lib/module/errors/IndexSizeError.js +2 -0
- package/lib/module/errors/IndexSizeError.js.map +1 -1
- package/lib/module/errors/InvalidAccessError.js +2 -0
- package/lib/module/errors/InvalidAccessError.js.map +1 -1
- package/lib/module/errors/InvalidStateError.js +2 -0
- package/lib/module/errors/InvalidStateError.js.map +1 -1
- package/lib/module/errors/RangeError.js +2 -0
- package/lib/module/errors/RangeError.js.map +1 -1
- package/lib/module/errors/index.js +6 -4
- package/lib/module/errors/index.js.map +1 -1
- package/lib/module/index.js +18 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.native.js +16 -14
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/interfaces.js +2 -0
- package/lib/module/specs/global.d.js +4 -0
- package/lib/module/{modules → specs}/global.d.js.map +1 -1
- package/lib/module/{utils → specs}/install.js +5 -9
- package/lib/module/specs/install.js.map +1 -0
- package/lib/typescript/core/AudioBuffer.d.ts +2 -0
- package/lib/typescript/core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/core/AudioDestinationNode.d.ts +0 -3
- package/lib/typescript/core/AudioDestinationNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioParam.d.ts +4 -0
- package/lib/typescript/core/AudioParam.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +0 -3
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/PeriodicWave.d.ts +2 -0
- package/lib/typescript/core/PeriodicWave.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +9 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +4 -0
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/{utils → specs}/install.d.ts.map +1 -1
- package/metro-config/index.d.ts +5 -0
- package/metro-config/index.js +41 -0
- package/metro-config/tsconfig.json +3 -0
- package/package.json +50 -16
- package/scripts/audioapi_utils.rb +56 -0
- package/src/core/AudioDestinationNode.ts +1 -7
- package/src/core/AudioParam.ts +48 -0
- package/src/core/AudioScheduledSourceNode.ts +0 -5
- package/src/index.native.ts +1 -1
- package/src/index.ts +31 -14
- package/src/interfaces.ts +12 -0
- package/src/{modules → specs}/global.d.ts +2 -0
- package/src/{utils → specs}/install.ts +4 -11
- package/android/src/main/cpp/AudioAPIInstaller/AudioAPIInstaller.cpp +0 -20
- package/common/cpp/core/ParamChange.cpp +0 -46
- package/common/cpp/utils/android/FFTFrame.cpp +0 -23
- package/ios/AudioDecoder/AudioDecoder.h +0 -17
- package/ios/AudioDecoder/AudioDecoder.m +0 -79
- package/ios/AudioDecoder/IOSAudioDecoder.h +0 -28
- package/ios/AudioDecoder/IOSAudioDecoder.mm +0 -46
- package/lib/module/modules/global.d.js +0 -2
- package/lib/module/utils/install.js.map +0 -1
- /package/android/src/main/cpp/{AudioPlayer → core}/AudioPlayer.cpp +0 -0
- /package/android/src/main/cpp/{AudioPlayer → core}/AudioPlayer.h +0 -0
- /package/common/cpp/{AudioAPIInstaller → HostObjects}/AudioAPIInstallerHostObject.h +0 -0
- /package/{android/libs/include → common/cpp/libs}/miniaudio.h +0 -0
- /package/ios/{AudioPlayer → core}/AudioPlayer.h +0 -0
- /package/ios/{AudioPlayer → core}/AudioPlayer.m +0 -0
- /package/ios/{AudioPlayer → core}/IOSAudioPlayer.h +0 -0
- /package/ios/{AudioPlayer → core}/IOSAudioPlayer.mm +0 -0
- /package/lib/typescript/{utils → specs}/install.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/global.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { TurboModuleRegistry } from 'react-native';
|
|
2
4
|
export function installModule() {
|
|
3
|
-
const AudioAPIModule = TurboModuleRegistry.
|
|
5
|
+
const AudioAPIModule = TurboModuleRegistry.get('AudioAPIModule');
|
|
4
6
|
if (AudioAPIModule == null) {
|
|
5
7
|
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
6
8
|
}
|
|
7
|
-
|
|
8
|
-
verifyInstallation();
|
|
9
|
-
return AudioAPIModule;
|
|
10
|
-
}
|
|
11
|
-
function runInstall(Module) {
|
|
12
|
-
const result = Module.install();
|
|
9
|
+
const result = AudioAPIModule.install();
|
|
13
10
|
if (result !== true) {
|
|
14
11
|
throw new Error(`Failed to install react-native-audio-api: The native Audio API Module could not be installed! Looks like something went wrong when installing JSI bindings: ${result}`);
|
|
15
12
|
}
|
|
16
|
-
}
|
|
17
|
-
function verifyInstallation() {
|
|
18
13
|
if (global.__AudioAPIInstaller == null) {
|
|
19
14
|
throw new Error('Failed to install react-native-audio-api, the native initializer private does not exist. Are you trying to use Audio API from different JS Runtimes?');
|
|
20
15
|
}
|
|
16
|
+
return AudioAPIModule;
|
|
21
17
|
}
|
|
22
18
|
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","installModule","AudioAPIModule","get","Error","result","install","global","__AudioAPIInstaller"],"sourceRoot":"../../../src","sources":["specs/install.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAqB,cAAc;AAM/D,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,cAAc,GAClBF,mBAAmB,CAACG,GAAG,CAAqB,gBAAgB,CAAC;EAE/D,IAAID,cAAc,IAAI,IAAI,EAAE;IAC1B,MAAM,IAAIE,KAAK,CACb,iFACF,CAAC;EACH;EAEA,MAAMC,MAAM,GAAGH,cAAc,CAACI,OAAO,CAAC,CAAC;EAEvC,IAAID,MAAM,KAAK,IAAI,EAAE;IACnB,MAAM,IAAID,KAAK,CACb,+JAA+JC,MAAM,EACvK,CAAC;EACH;EAEA,IAAIE,MAAM,CAACC,mBAAmB,IAAI,IAAI,EAAE;IACtC,MAAM,IAAIJ,KAAK,CACb,sJACF,CAAC;EACH;EAEA,OAAOF,cAAc;AACvB","ignoreList":[]}
|
|
@@ -4,6 +4,8 @@ export default class AudioBuffer {
|
|
|
4
4
|
readonly duration: number;
|
|
5
5
|
readonly sampleRate: number;
|
|
6
6
|
readonly numberOfChannels: number;
|
|
7
|
+
/** @internal */
|
|
8
|
+
readonly buffer: IAudioBuffer;
|
|
7
9
|
constructor(buffer: IAudioBuffer);
|
|
8
10
|
getChannelData(channel: number): number[];
|
|
9
11
|
copyFromChannel(destination: number[], channelNumber: number, startInChannel?: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBuffer.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioBuffer.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,YAAY,CAAC;gBAEzB,MAAM,EAAE,YAAY;IAQzB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IASzC,eAAe,CACpB,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;IAgBA,aAAa,CAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;CAeR"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { IAudioDestinationNode } from '../interfaces';
|
|
2
1
|
import AudioNode from './AudioNode';
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
4
2
|
export default class AudioDestinationNode extends AudioNode {
|
|
5
|
-
constructor(context: BaseAudioContext, destination: IAudioDestinationNode);
|
|
6
3
|
}
|
|
7
4
|
//# sourceMappingURL=AudioDestinationNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioDestinationNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioDestinationNode.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AudioDestinationNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioDestinationNode.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;CAAG"}
|
|
@@ -10,5 +10,9 @@ export default class AudioParam {
|
|
|
10
10
|
setValueAtTime(value: number, startTime: number): void;
|
|
11
11
|
linearRampToValueAtTime(value: number, endTime: number): void;
|
|
12
12
|
exponentialRampToValueAtTime(value: number, endTime: number): void;
|
|
13
|
+
setTargetAtTime(target: number, startTime: number, timeConstant: number): void;
|
|
14
|
+
setValueCurveAtTime(values: number[], startTime: number, duration: number): void;
|
|
15
|
+
cancelScheduledValues(cancelTime: number): void;
|
|
16
|
+
cancelAndHoldAtTime(cancelTime: number): void;
|
|
13
17
|
}
|
|
14
18
|
//# sourceMappingURL=AudioParam.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/core/AudioParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;gBAE7B,UAAU,EAAE,WAAW;IAQnC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUtD,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAU7D,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/core/AudioParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;gBAE7B,UAAU,EAAE,WAAW;IAQnC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUtD,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAU7D,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUlE,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,IAAI;IAUA,mBAAmB,CACxB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI;IAUA,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU/C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CASrD"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { IAudioScheduledSourceNode } from '../interfaces';
|
|
2
1
|
import AudioNode from './AudioNode';
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
4
2
|
export default class AudioScheduledSourceNode extends AudioNode {
|
|
5
3
|
private hasBeenStarted;
|
|
6
|
-
constructor(context: BaseAudioContext, node: IAudioScheduledSourceNode);
|
|
7
4
|
start(when?: number): void;
|
|
8
5
|
stop(when?: number): void;
|
|
9
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioScheduledSourceNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioScheduledSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAC7D,OAAO,CAAC,cAAc,CAAkB;IAEjC,KAAK,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAe7B,IAAI,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;CAepC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodicWave.d.ts","sourceRoot":"","sources":["../../../src/core/PeriodicWave.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"PeriodicWave.d.ts","sourceRoot":"","sources":["../../../src/core/PeriodicWave.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,gBAAgB;IAChB,SAAgB,YAAY,EAAE,aAAa,CAAC;gBAEhC,YAAY,EAAE,aAAa;CAGxC"}
|
|
@@ -4,6 +4,8 @@ export declare class AudioBuffer {
|
|
|
4
4
|
readonly duration: number;
|
|
5
5
|
readonly sampleRate: number;
|
|
6
6
|
readonly numberOfChannels: number;
|
|
7
|
+
/** @internal */
|
|
8
|
+
readonly buffer: globalThis.AudioBuffer;
|
|
7
9
|
constructor(buffer: globalThis.AudioBuffer);
|
|
8
10
|
getChannelData(channel: number): number[];
|
|
9
11
|
copyFromChannel(destination: number[], channelNumber: number, startInChannel?: number): void;
|
|
@@ -23,7 +25,6 @@ export declare class AudioNode {
|
|
|
23
25
|
}
|
|
24
26
|
export declare class AudioScheduledSourceNode extends AudioNode {
|
|
25
27
|
private hasBeenStarted;
|
|
26
|
-
constructor(context: AudioContext, node: globalThis.AudioScheduledSourceNode);
|
|
27
28
|
start(when?: number): void;
|
|
28
29
|
stop(when?: number): void;
|
|
29
30
|
}
|
|
@@ -41,7 +42,6 @@ export declare class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
41
42
|
set loopEnd(value: number);
|
|
42
43
|
}
|
|
43
44
|
export declare class AudioDestinationNode extends AudioNode {
|
|
44
|
-
constructor(context: AudioContext, node: globalThis.AudioDestinationNode);
|
|
45
45
|
}
|
|
46
46
|
export declare class AudioParam {
|
|
47
47
|
readonly defaultValue: number;
|
|
@@ -54,6 +54,10 @@ export declare class AudioParam {
|
|
|
54
54
|
setValueAtTime(value: number, startTime: number): void;
|
|
55
55
|
linearRampToValueAtTime(value: number, endTime: number): void;
|
|
56
56
|
exponentialRampToValueAtTime(value: number, endTime: number): void;
|
|
57
|
+
setTargetAtTime(target: number, startTime: number, timeConstant: number): void;
|
|
58
|
+
setValueCurveAtTime(values: number[], startTime: number, duration: number): void;
|
|
59
|
+
cancelScheduledValues(startTime: number): void;
|
|
60
|
+
cancelAndHoldAtTime(cancelTime: number): void;
|
|
57
61
|
}
|
|
58
62
|
export declare class BiquadFilterNode extends AudioNode {
|
|
59
63
|
readonly frequency: AudioParam;
|
|
@@ -66,6 +70,8 @@ export declare class BiquadFilterNode extends AudioNode {
|
|
|
66
70
|
getFrequencyResponse(frequencyArray: number[], magResponseOutput: number[], phaseResponseOutput: number[]): void;
|
|
67
71
|
}
|
|
68
72
|
export declare class PeriodicWave {
|
|
73
|
+
/** @internal */
|
|
74
|
+
readonly periodicWave: globalThis.PeriodicWave;
|
|
69
75
|
constructor(periodicWave: globalThis.PeriodicWave);
|
|
70
76
|
}
|
|
71
77
|
export declare class OscillatorNode extends AudioScheduledSourceNode {
|
|
@@ -99,7 +105,7 @@ export declare class AudioContext {
|
|
|
99
105
|
createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
|
100
106
|
createPeriodicWave(real: number[], imag: number[], constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
101
107
|
decodeAudioDataSource(source: string): Promise<AudioBuffer>;
|
|
102
|
-
close(): void
|
|
108
|
+
close(): Promise<void>;
|
|
103
109
|
}
|
|
104
110
|
export { ContextState, OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, } from './core/types';
|
|
105
111
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAErE,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAErE,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAEnC,MAAM,EAAE,UAAU,CAAC,WAAW;IAQnC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAWzC,eAAe,CACpB,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;IAoBA,aAAa,CAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;CAmBR;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;gBAElC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS;IAUtD,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAQ9B,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAGzC;AAED,qBAAa,wBAAyB,SAAQ,SAAS;IACrD,OAAO,CAAC,cAAc,CAAkB;IAEjC,KAAK,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAe7B,IAAI,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;CAapC;AAED,qBAAa,qBAAsB,SAAQ,wBAAwB;IACjE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,qBAAqB;IAOzE,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAQtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAO3C;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;CACF;AAED,qBAAa,oBAAqB,SAAQ,SAAS;CAAG;AAEtD,qBAAa,UAAU;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAElC,KAAK,EAAE,UAAU,CAAC,UAAU;IAOxC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAItD,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7D,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlE,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,IAAI;IAIA,mBAAmB,CACxB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI;IAQA,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAGrD;AAED,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAGxB,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,UAAU,CAAC,gBAAgB;IAS3C,IAAW,IAAI,IAAI,gBAAgB,CAElC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAEtC;IAEM,oBAAoB,CACzB,cAAc,EAAE,MAAM,EAAE,EACxB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,mBAAmB,EAAE,MAAM,EAAE;CAiBhC;AAED,qBAAa,YAAY;IACvB,gBAAgB;IAChB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC;gBAEnC,YAAY,EAAE,UAAU,CAAC,YAAY;CAGlD;AAED,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,cAAc;IAOlE,IAAW,IAAI,IAAI,cAAc,CAEhC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,cAAc,EAQpC;IAEM,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;CAGjD;AAED,qBAAa,QAAS,SAAQ,SAAS;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAEd,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ;CAI7D;AAED,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;gBAEb,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC,gBAAgB;CAIpE;AAED,qBAAa,YAAY;IACvB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAEpD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;;IAS5B,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,qBAAqB;IAI3C,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAMd,kBAAkB,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAMT,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC"}
|
|
@@ -77,6 +77,10 @@ export interface IAudioParam {
|
|
|
77
77
|
setValueAtTime: (value: number, startTime: number) => void;
|
|
78
78
|
linearRampToValueAtTime: (value: number, endTime: number) => void;
|
|
79
79
|
exponentialRampToValueAtTime: (value: number, endTime: number) => void;
|
|
80
|
+
setTargetAtTime: (target: number, startTime: number, timeConstant: number) => void;
|
|
81
|
+
setValueCurveAtTime: (values: number[], startTime: number, duration: number) => void;
|
|
82
|
+
cancelScheduledValues: (cancelTime: number) => void;
|
|
83
|
+
cancelAndHoldAtTime: (cancelTime: number) => void;
|
|
80
84
|
}
|
|
81
85
|
export interface IPeriodicWave {
|
|
82
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/specs/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,OAAO,IAAI,OAAO,CAAC;CACpB;AAED,wBAAgB,aAAa,uBAyB5B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const COLLAPSED_STACK_REGEX = new RegExp(
|
|
2
|
+
[
|
|
3
|
+
// For internal usage in the example app
|
|
4
|
+
'/packages/react-native-audio-api/.+\\.(t|j)sx?$',
|
|
5
|
+
// When audio-api is installed as a dependency (node_modules)
|
|
6
|
+
'/node_modules/react-native-audio-api/.+\\.(t|j)sx?$',
|
|
7
|
+
]
|
|
8
|
+
// Make patterns work with both Windows and POSIX paths.
|
|
9
|
+
.map((pathPattern) => pathPattern.replaceAll('/', '[/\\\\]'))
|
|
10
|
+
.join('|')
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Wraps and returns a modified Metro configuration to handle stack frames for audio API.
|
|
15
|
+
* It collapses frames from either the library's directory in development or from `node_modules` when installed.
|
|
16
|
+
*
|
|
17
|
+
* @param {import('@react-native/metro-config').MetroConfig} config - The original Metro configuration object to be wrapped.
|
|
18
|
+
* @returns {import('@react-native/metro-config').MetroConfig} - Modified Metro configuration which customizes stack frame collapsing.
|
|
19
|
+
*/
|
|
20
|
+
function wrapWithAudioAPIMetroConfig(config) {
|
|
21
|
+
return {
|
|
22
|
+
...config,
|
|
23
|
+
symbolicator: {
|
|
24
|
+
async customizeFrame(frame) {
|
|
25
|
+
const collapse = Boolean(
|
|
26
|
+
// Collapse the stack frame based on user's config symbolicator settings
|
|
27
|
+
(await config?.symbolicator?.customizeFrame?.(frame))?.collapse ||
|
|
28
|
+
// or, if not already collapsed, collapse the stack frame with path
|
|
29
|
+
// to react-native-audio-api source code
|
|
30
|
+
(frame.file && COLLAPSED_STACK_REGEX.test(frame.file))
|
|
31
|
+
);
|
|
32
|
+
return {
|
|
33
|
+
collapse,
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
module.exports = {
|
|
40
|
+
wrapWithAudioAPIMetroConfig,
|
|
41
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -11,20 +11,27 @@
|
|
|
11
11
|
"src/",
|
|
12
12
|
"lib/",
|
|
13
13
|
"common/",
|
|
14
|
-
"android",
|
|
14
|
+
"android/src/main/AndroidManifest.xml",
|
|
15
|
+
"android/src/main/java/",
|
|
16
|
+
"android/build.gradle",
|
|
17
|
+
"android/",
|
|
15
18
|
"ios",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
19
|
+
"RNAudioAPI.podspec",
|
|
20
|
+
"scripts/audioapi_utils.rb",
|
|
21
|
+
"metro-config",
|
|
18
22
|
"!ios/build",
|
|
19
23
|
"!android/build",
|
|
20
24
|
"!android/gradle",
|
|
21
25
|
"!android/gradlew",
|
|
22
26
|
"!android/gradlew.bat",
|
|
23
27
|
"!android/local.properties",
|
|
28
|
+
"!android/.cxx/",
|
|
29
|
+
"!android/.gradle/",
|
|
24
30
|
"!**/__tests__",
|
|
25
31
|
"!**/__fixtures__",
|
|
26
32
|
"!**/__mocks__",
|
|
27
|
-
"!**/.*"
|
|
33
|
+
"!**/.*",
|
|
34
|
+
"!**/node_modules"
|
|
28
35
|
],
|
|
29
36
|
"scripts": {
|
|
30
37
|
"test": "jest",
|
|
@@ -36,7 +43,7 @@
|
|
|
36
43
|
"lint:kotlin": "ktlint 'android/src/main/java/**'",
|
|
37
44
|
"format:android": "find android/src/ -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
38
45
|
"format:ios": "find ios/ -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" -o -iname \"*.cpp\" | xargs clang-format -i --Werror",
|
|
39
|
-
"format:common": "find common/cpp/ -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
46
|
+
"format:common": "find common/cpp/ -path 'common/cpp/libs' -prune -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
40
47
|
"format:kotlin": "ktlint -F 'android/src/main/java/**'",
|
|
41
48
|
"build": "bob build",
|
|
42
49
|
"prepack": "cp ../../README.md ./README.md",
|
|
@@ -67,24 +74,48 @@
|
|
|
67
74
|
"react-native": "*"
|
|
68
75
|
},
|
|
69
76
|
"devDependencies": {
|
|
77
|
+
"@babel/cli": "^7.20.0",
|
|
78
|
+
"@babel/core": "^7.25.2",
|
|
79
|
+
"@babel/preset-env": "^7.25.3",
|
|
80
|
+
"@babel/types": "^7.20.0",
|
|
70
81
|
"@commitlint/config-conventional": "^17.0.2",
|
|
71
82
|
"@evilmartians/lefthook": "^1.5.0",
|
|
72
|
-
"@react-native/
|
|
83
|
+
"@react-native/babel-preset": "0.76.5",
|
|
84
|
+
"@react-native/eslint-config": "^0.76.5",
|
|
85
|
+
"@react-native/metro-config": "0.76.5",
|
|
86
|
+
"@react-native/typescript-config": "0.76.5",
|
|
87
|
+
"@types/babel__core": "^7.20.0",
|
|
88
|
+
"@types/babel__generator": "^7.6.4",
|
|
89
|
+
"@types/babel__traverse": "^7.14.2",
|
|
90
|
+
"@types/convert-source-map": "^2.0.0",
|
|
73
91
|
"@types/jest": "^29.5.5",
|
|
92
|
+
"@types/node": "^18.0.0",
|
|
74
93
|
"@types/react": "^18.2.44",
|
|
94
|
+
"@types/react-test-renderer": "^17.0.0-0",
|
|
95
|
+
"babel-plugin-module-resolver": "^4.1.0",
|
|
75
96
|
"commitlint": "^17.0.2",
|
|
76
97
|
"del-cli": "^5.1.0",
|
|
77
|
-
"eslint": "^8.
|
|
78
|
-
"eslint-config-prettier": "^
|
|
98
|
+
"eslint": "^8.57.0",
|
|
99
|
+
"eslint-config-prettier": "^8.3.0",
|
|
100
|
+
"eslint-config-standard": "^17.1.0",
|
|
101
|
+
"eslint-import-resolver-babel-module": "^5.3.1",
|
|
102
|
+
"eslint-plugin-import": "^2.25.4",
|
|
103
|
+
"eslint-plugin-jest": "^27.2.1",
|
|
104
|
+
"eslint-plugin-n": "^16.4.0",
|
|
105
|
+
"eslint-plugin-no-inline-styles": "^1.0.5",
|
|
79
106
|
"eslint-plugin-prettier": "^5.0.1",
|
|
107
|
+
"eslint-plugin-promise": "^6.0.0",
|
|
80
108
|
"eslint-plugin-react": "^7.34.3",
|
|
109
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
110
|
+
"eslint-plugin-standard": "^5.0.0",
|
|
111
|
+
"eslint-plugin-tsdoc": "^0.2.17",
|
|
81
112
|
"jest": "^29.7.0",
|
|
82
|
-
"prettier": "^3.
|
|
83
|
-
"react": "18.
|
|
84
|
-
"react-native": "0.
|
|
85
|
-
"react-native-builder-bob": "
|
|
113
|
+
"prettier": "^3.3.3",
|
|
114
|
+
"react": "18.3.1",
|
|
115
|
+
"react-native": "0.76.5",
|
|
116
|
+
"react-native-builder-bob": "0.33.1",
|
|
86
117
|
"turbo": "^1.10.7",
|
|
87
|
-
"typescript": "
|
|
118
|
+
"typescript": "~5.3.0"
|
|
88
119
|
},
|
|
89
120
|
"react-native-builder-bob": {
|
|
90
121
|
"source": "src",
|
|
@@ -100,9 +131,12 @@
|
|
|
100
131
|
]
|
|
101
132
|
},
|
|
102
133
|
"codegenConfig": {
|
|
103
|
-
"name": "
|
|
134
|
+
"name": "rnaudioapi",
|
|
104
135
|
"type": "modules",
|
|
105
|
-
"jsSrcsDir": "src"
|
|
136
|
+
"jsSrcsDir": "src/specs",
|
|
137
|
+
"android": {
|
|
138
|
+
"javaPackageName": "com.swmansion.audioapi"
|
|
139
|
+
}
|
|
106
140
|
},
|
|
107
141
|
"create-react-native-library": {
|
|
108
142
|
"type": "module-legacy",
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
def try_to_parse_react_native_package_json(node_modules_dir)
|
|
2
|
+
react_native_package_json_path = File.join(node_modules_dir, 'react-native/package.json')
|
|
3
|
+
if !File.exist?(react_native_package_json_path)
|
|
4
|
+
return nil
|
|
5
|
+
end
|
|
6
|
+
return JSON.parse(File.read(react_native_package_json_path))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def find_config()
|
|
10
|
+
result = {
|
|
11
|
+
:react_native_version => nil,
|
|
12
|
+
:react_native_minor_version => nil,
|
|
13
|
+
:react_native_node_modules_dir => nil,
|
|
14
|
+
:react_native_common_dir => nil,
|
|
15
|
+
:react_native_audioapi_dir_from_pods_root => nil,
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
react_native_node_modules_dir = File.join(File.dirname(`cd "#{Pod::Config.instance.installation_root.to_s}" && node --print "require.resolve('react-native/package.json')"`), '..')
|
|
19
|
+
react_native_json = try_to_parse_react_native_package_json(react_native_node_modules_dir)
|
|
20
|
+
|
|
21
|
+
if react_native_json == nil
|
|
22
|
+
# user configuration, just in case
|
|
23
|
+
node_modules_dir = ENV["REACT_NATIVE_NODE_MODULES_DIR"]
|
|
24
|
+
react_native_json = try_to_parse_react_native_package_json(node_modules_dir)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
if react_native_json == nil
|
|
28
|
+
raise '[Audio API] Unable to recognize your `react-native` version. Please set environmental variable with `react-native` location: `export REACT_NATIVE_NODE_MODULES_DIR="<path to react-native>" && pod install`.'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
result[:react_native_version] = react_native_json['version']
|
|
32
|
+
result[:react_native_minor_version] = react_native_json['version'].split('.')[1].to_i
|
|
33
|
+
if result[:react_native_minor_version] == 0 # nightly
|
|
34
|
+
result[:react_native_minor_version] = 1000
|
|
35
|
+
end
|
|
36
|
+
result[:react_native_node_modules_dir] = File.expand_path(react_native_node_modules_dir)
|
|
37
|
+
|
|
38
|
+
pods_root = Pod::Config.instance.project_pods_root
|
|
39
|
+
react_native_common_dir_absolute = File.join(react_native_node_modules_dir, 'react-native', 'ReactCommon')
|
|
40
|
+
react_native_common_dir_relative = Pathname.new(react_native_common_dir_absolute).relative_path_from(pods_root).to_s
|
|
41
|
+
result[:react_native_common_dir] = react_native_common_dir_relative
|
|
42
|
+
|
|
43
|
+
react_native_audioapi_dir_absolute = File.join(__dir__, '..')
|
|
44
|
+
react_native_audioapi_dir_relative = Pathname.new(react_native_audioapi_dir_absolute).relative_path_from(pods_root).to_s
|
|
45
|
+
result[:react_native_audioapi_dir_from_pods_root] = react_native_audioapi_dir_relative
|
|
46
|
+
|
|
47
|
+
return result
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def assert_minimal_react_native_version(config)
|
|
51
|
+
# If you change the minimal React Native version remember to update Compatibility Table in docs
|
|
52
|
+
minimalReactNativeVersion = 75
|
|
53
|
+
if config[:react_native_minor_version] < minimalReactNativeVersion
|
|
54
|
+
raise "[Audio API] Unsupported React Native version. Please use #{minimalReactNativeVersion} or newer."
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import { IAudioDestinationNode } from '../interfaces';
|
|
2
1
|
import AudioNode from './AudioNode';
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
4
2
|
|
|
5
|
-
export default class AudioDestinationNode extends AudioNode {
|
|
6
|
-
constructor(context: BaseAudioContext, destination: IAudioDestinationNode) {
|
|
7
|
-
super(context, destination);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
3
|
+
export default class AudioDestinationNode extends AudioNode {}
|
package/src/core/AudioParam.ts
CHANGED
|
@@ -52,4 +52,52 @@ export default class AudioParam {
|
|
|
52
52
|
|
|
53
53
|
this.audioParam.exponentialRampToValueAtTime(value, endTime);
|
|
54
54
|
}
|
|
55
|
+
|
|
56
|
+
public setTargetAtTime(
|
|
57
|
+
target: number,
|
|
58
|
+
startTime: number,
|
|
59
|
+
timeConstant: number
|
|
60
|
+
): void {
|
|
61
|
+
if (startTime < 0) {
|
|
62
|
+
throw new RangeError(
|
|
63
|
+
`Time must be a finite non-negative number: ${startTime}`
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
this.audioParam.setTargetAtTime(target, startTime, timeConstant);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public setValueCurveAtTime(
|
|
71
|
+
values: number[],
|
|
72
|
+
startTime: number,
|
|
73
|
+
duration: number
|
|
74
|
+
): void {
|
|
75
|
+
if (startTime < 0) {
|
|
76
|
+
throw new RangeError(
|
|
77
|
+
`Time must be a finite non-negative number: ${startTime}`
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
this.audioParam.setValueCurveAtTime(values, startTime, duration);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public cancelScheduledValues(cancelTime: number): void {
|
|
85
|
+
if (cancelTime < 0) {
|
|
86
|
+
throw new RangeError(
|
|
87
|
+
`Time must be a finite non-negative number: ${cancelTime}`
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
this.audioParam.cancelScheduledValues(cancelTime);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
public cancelAndHoldAtTime(cancelTime: number): void {
|
|
95
|
+
if (cancelTime < 0) {
|
|
96
|
+
throw new RangeError(
|
|
97
|
+
`Time must be a finite non-negative number: ${cancelTime}`
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
this.audioParam.cancelAndHoldAtTime(cancelTime);
|
|
102
|
+
}
|
|
55
103
|
}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { IAudioScheduledSourceNode } from '../interfaces';
|
|
2
2
|
import AudioNode from './AudioNode';
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
4
3
|
import { InvalidStateError, RangeError } from '../errors';
|
|
5
4
|
|
|
6
5
|
export default class AudioScheduledSourceNode extends AudioNode {
|
|
7
6
|
private hasBeenStarted: boolean = false;
|
|
8
7
|
|
|
9
|
-
constructor(context: BaseAudioContext, node: IAudioScheduledSourceNode) {
|
|
10
|
-
super(context, node);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
8
|
public start(when: number = 0): void {
|
|
14
9
|
if (when < 0) {
|
|
15
10
|
throw new RangeError(
|
package/src/index.native.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -113,13 +113,6 @@ export class AudioNode {
|
|
|
113
113
|
export class AudioScheduledSourceNode extends AudioNode {
|
|
114
114
|
private hasBeenStarted: boolean = false;
|
|
115
115
|
|
|
116
|
-
constructor(
|
|
117
|
-
context: AudioContext,
|
|
118
|
-
node: globalThis.AudioScheduledSourceNode
|
|
119
|
-
) {
|
|
120
|
-
super(context, node);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
116
|
public start(when: number = 0): void {
|
|
124
117
|
if (when < 0) {
|
|
125
118
|
throw new RangeError(
|
|
@@ -205,11 +198,7 @@ export class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
205
198
|
}
|
|
206
199
|
}
|
|
207
200
|
|
|
208
|
-
export class AudioDestinationNode extends AudioNode {
|
|
209
|
-
constructor(context: AudioContext, node: globalThis.AudioDestinationNode) {
|
|
210
|
-
super(context, node);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
201
|
+
export class AudioDestinationNode extends AudioNode {}
|
|
213
202
|
|
|
214
203
|
export class AudioParam {
|
|
215
204
|
readonly defaultValue: number;
|
|
@@ -244,6 +233,34 @@ export class AudioParam {
|
|
|
244
233
|
public exponentialRampToValueAtTime(value: number, endTime: number): void {
|
|
245
234
|
this.param.exponentialRampToValueAtTime(value, endTime);
|
|
246
235
|
}
|
|
236
|
+
|
|
237
|
+
public setTargetAtTime(
|
|
238
|
+
target: number,
|
|
239
|
+
startTime: number,
|
|
240
|
+
timeConstant: number
|
|
241
|
+
): void {
|
|
242
|
+
this.param.setTargetAtTime(target, startTime, timeConstant);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
public setValueCurveAtTime(
|
|
246
|
+
values: number[],
|
|
247
|
+
startTime: number,
|
|
248
|
+
duration: number
|
|
249
|
+
): void {
|
|
250
|
+
this.param.setValueCurveAtTime(
|
|
251
|
+
new Float32Array(values),
|
|
252
|
+
startTime,
|
|
253
|
+
duration
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
public cancelScheduledValues(startTime: number): void {
|
|
258
|
+
this.param.cancelScheduledValues(startTime);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
public cancelAndHoldAtTime(cancelTime: number): void {
|
|
262
|
+
this.param.cancelAndHoldAtTime(cancelTime);
|
|
263
|
+
}
|
|
247
264
|
}
|
|
248
265
|
|
|
249
266
|
export class BiquadFilterNode extends AudioNode {
|
|
@@ -419,8 +436,8 @@ export class AudioContext {
|
|
|
419
436
|
return new AudioBuffer(await this.context.decodeAudioData(arrayBuffer));
|
|
420
437
|
}
|
|
421
438
|
|
|
422
|
-
close(): void {
|
|
423
|
-
this.context.close();
|
|
439
|
+
async close(): Promise<void> {
|
|
440
|
+
await this.context.close();
|
|
424
441
|
}
|
|
425
442
|
}
|
|
426
443
|
|
package/src/interfaces.ts
CHANGED
|
@@ -121,6 +121,18 @@ export interface IAudioParam {
|
|
|
121
121
|
setValueAtTime: (value: number, startTime: number) => void;
|
|
122
122
|
linearRampToValueAtTime: (value: number, endTime: number) => void;
|
|
123
123
|
exponentialRampToValueAtTime: (value: number, endTime: number) => void;
|
|
124
|
+
setTargetAtTime: (
|
|
125
|
+
target: number,
|
|
126
|
+
startTime: number,
|
|
127
|
+
timeConstant: number
|
|
128
|
+
) => void;
|
|
129
|
+
setValueCurveAtTime: (
|
|
130
|
+
values: number[],
|
|
131
|
+
startTime: number,
|
|
132
|
+
duration: number
|
|
133
|
+
) => void;
|
|
134
|
+
cancelScheduledValues: (cancelTime: number) => void;
|
|
135
|
+
cancelAndHoldAtTime: (cancelTime: number) => void;
|
|
124
136
|
}
|
|
125
137
|
|
|
126
138
|
export interface IPeriodicWave {}
|