react-native-audio-api 0.6.1-rc.7 → 0.6.1-rc.9
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/README.md +6 -11
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +12 -1
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.h +2 -0
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +10 -0
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +10 -1
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +0 -4
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +1 -1
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +2 -1
- package/common/cpp/audioapi/HostObjects/AudioContextHostObject.h +10 -0
- package/common/cpp/audioapi/core/AudioContext.cpp +30 -5
- package/common/cpp/audioapi/core/AudioContext.h +2 -1
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +6 -10
- package/ios/audioapi/ios/AudioAPIModule.mm +1 -1
- package/ios/audioapi/ios/core/IOSAudioPlayer.h +2 -0
- package/ios/audioapi/ios/core/IOSAudioPlayer.mm +16 -0
- package/ios/audioapi/ios/core/NativeAudioPlayer.h +4 -0
- package/ios/audioapi/ios/core/NativeAudioPlayer.m +15 -0
- package/ios/audioapi/ios/system/AudioEngine.h +1 -0
- package/ios/audioapi/ios/system/AudioEngine.mm +11 -1
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioContext.js +2 -2
- package/lib/commonjs/core/AudioContext.js.map +1 -1
- package/lib/commonjs/plugin/withAudioAPI.js +15 -14
- package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
- package/lib/commonjs/web-core/AudioBufferSourceNode.js +4 -4
- package/lib/commonjs/web-core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/web-core/AudioContext.js +5 -3
- package/lib/commonjs/web-core/AudioContext.js.map +1 -1
- package/lib/commonjs/web-core/AudioNode.js +8 -2
- package/lib/commonjs/web-core/AudioNode.js.map +1 -1
- package/lib/commonjs/web-core/AudioParam.js +2 -1
- package/lib/commonjs/web-core/AudioParam.js.map +1 -1
- package/lib/commonjs/web-core/BiquadFilterNode.js +4 -4
- package/lib/commonjs/web-core/BiquadFilterNode.js.map +1 -1
- package/lib/commonjs/web-core/GainNode.js +1 -1
- package/lib/commonjs/web-core/GainNode.js.map +1 -1
- package/lib/commonjs/web-core/OscillatorNode.js +2 -2
- package/lib/commonjs/web-core/OscillatorNode.js.map +1 -1
- package/lib/commonjs/web-core/StereoPannerNode.js +1 -1
- package/lib/commonjs/web-core/StereoPannerNode.js.map +1 -1
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioContext.js +2 -2
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/plugin/withAudioAPI.js +15 -14
- package/lib/module/plugin/withAudioAPI.js.map +1 -1
- package/lib/module/web-core/AudioBufferSourceNode.js +4 -4
- package/lib/module/web-core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/web-core/AudioContext.js +5 -3
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/module/web-core/AudioNode.js +7 -2
- package/lib/module/web-core/AudioNode.js.map +1 -1
- package/lib/module/web-core/AudioParam.js +2 -1
- package/lib/module/web-core/AudioParam.js.map +1 -1
- package/lib/module/web-core/BiquadFilterNode.js +4 -4
- package/lib/module/web-core/BiquadFilterNode.js.map +1 -1
- package/lib/module/web-core/GainNode.js +1 -1
- package/lib/module/web-core/GainNode.js.map +1 -1
- package/lib/module/web-core/OscillatorNode.js +2 -2
- package/lib/module/web-core/OscillatorNode.js.map +1 -1
- package/lib/module/web-core/StereoPannerNode.js +1 -1
- package/lib/module/web-core/StereoPannerNode.js.map +1 -1
- package/lib/typescript/api.d.ts +1 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/plugin/withAudioAPI.d.ts +7 -6
- package/lib/typescript/plugin/withAudioAPI.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +2 -1
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioNode.d.ts +2 -1
- package/lib/typescript/web-core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioParam.d.ts +4 -2
- package/lib/typescript/web-core/AudioParam.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/api.ts +4 -1
- package/src/core/AudioContext.ts +7 -2
- package/src/plugin/withAudioAPI.ts +36 -29
- package/src/types.ts +2 -1
- package/src/web-core/AudioBufferSourceNode.tsx +9 -4
- package/src/web-core/AudioContext.tsx +7 -3
- package/src/web-core/AudioNode.tsx +10 -3
- package/src/web-core/AudioParam.tsx +5 -2
- package/src/web-core/BiquadFilterNode.tsx +4 -4
- package/src/web-core/GainNode.tsx +1 -1
- package/src/web-core/OscillatorNode.tsx +2 -2
- package/src/web-core/StereoPannerNode.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAudioAPI.d.ts","sourceRoot":"","sources":["../../../src/plugin/withAudioAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,sBAAsB,CAAC
|
|
1
|
+
{"version":3,"file":"withAudioAPI.d.ts","sourceRoot":"","sources":["../../../src/plugin/withAudioAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,sBAAsB,CAAC;AAG9B,UAAU,OAAO;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,EAAE,OAAO,CAAC;IAClC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;;AAmFD,wBAAwE"}
|
|
@@ -7,7 +7,8 @@ export interface PeriodicWaveConstraints {
|
|
|
7
7
|
disableNormalization: boolean;
|
|
8
8
|
}
|
|
9
9
|
export interface AudioContextOptions {
|
|
10
|
-
sampleRate
|
|
10
|
+
sampleRate?: number;
|
|
11
|
+
initSuspended?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export interface OfflineAudioContextOptions {
|
|
13
14
|
numberOfChannels: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,OAAO,CAAC;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBufferSourceNode.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBufferSourceNode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export default class AudioContext implements BaseAudioContext {
|
|
|
13
13
|
readonly context: globalThis.AudioContext;
|
|
14
14
|
readonly destination: AudioDestinationNode;
|
|
15
15
|
readonly sampleRate: number;
|
|
16
|
-
constructor(options?: AudioContextOptions);
|
|
16
|
+
constructor(options?: AudioContextOptions, _initSuspended?: boolean);
|
|
17
17
|
get currentTime(): number;
|
|
18
18
|
get state(): ContextState;
|
|
19
19
|
createOscillator(): OscillatorNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB,EAAE,cAAc,GAAE,OAAe;IAiB1E,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;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import BaseAudioContext from './BaseAudioContext';
|
|
2
2
|
import { ChannelCountMode, ChannelInterpretation } from '../types';
|
|
3
|
+
import AudioParam from './AudioParam';
|
|
3
4
|
export default class AudioNode {
|
|
4
5
|
readonly context: BaseAudioContext;
|
|
5
6
|
readonly numberOfInputs: number;
|
|
@@ -9,7 +10,7 @@ export default class AudioNode {
|
|
|
9
10
|
readonly channelInterpretation: ChannelInterpretation;
|
|
10
11
|
protected readonly node: globalThis.AudioNode;
|
|
11
12
|
constructor(context: BaseAudioContext, node: globalThis.AudioNode);
|
|
12
|
-
connect(destination: AudioNode): AudioNode;
|
|
13
|
+
connect(destination: AudioNode | AudioParam): AudioNode | AudioParam;
|
|
13
14
|
disconnect(destination?: AudioNode): void;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=AudioNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioNode.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioNode.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,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,gBAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS;IAU1D,OAAO,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU;IAgBpE,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI;CAQjD"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
1
2
|
export default class AudioParam {
|
|
2
3
|
readonly defaultValue: number;
|
|
3
4
|
readonly minValue: number;
|
|
4
5
|
readonly maxValue: number;
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
readonly context: BaseAudioContext;
|
|
7
|
+
readonly param: globalThis.AudioParam;
|
|
8
|
+
constructor(param: globalThis.AudioParam, context: BaseAudioContext);
|
|
7
9
|
get value(): number;
|
|
8
10
|
set value(value: number);
|
|
9
11
|
setValueAtTime(value: number, startTime: number): AudioParam;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioParam.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioParam.tsx"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,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,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC;gBAE1B,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAQnE,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;IAY5D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAYnE,4BAA4B,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,UAAU;IAYN,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,UAAU;IAkBN,mBAAmB,CACxB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,UAAU;IAsBN,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAYrD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAW3D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.6.1-rc.
|
|
3
|
+
"version": "0.6.1-rc.9",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
5
|
"bin": {
|
|
6
6
|
"setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
|
|
@@ -90,6 +90,7 @@
|
|
|
90
90
|
"@commitlint/config-conventional": "^17.0.2",
|
|
91
91
|
"@evilmartians/lefthook": "^1.5.0",
|
|
92
92
|
"@expo/config-plugins": "^9.0.0",
|
|
93
|
+
"@expo/config-types": "^53.0.4",
|
|
93
94
|
"@react-native/babel-preset": "0.77.1",
|
|
94
95
|
"@react-native/eslint-config": "^0.77.1",
|
|
95
96
|
"@react-native/metro-config": "0.77.1",
|
package/src/api.ts
CHANGED
|
@@ -9,7 +9,10 @@ import type {
|
|
|
9
9
|
|
|
10
10
|
/* eslint-disable no-var */
|
|
11
11
|
declare global {
|
|
12
|
-
var createAudioContext: (
|
|
12
|
+
var createAudioContext: (
|
|
13
|
+
sampleRate: number,
|
|
14
|
+
initSuspended: boolean
|
|
15
|
+
) => IAudioContext;
|
|
13
16
|
var createOfflineAudioContext: (
|
|
14
17
|
numberOfChannels: number,
|
|
15
18
|
length: number,
|
package/src/core/AudioContext.ts
CHANGED
|
@@ -6,7 +6,11 @@ import { NotSupportedError } from '../errors';
|
|
|
6
6
|
|
|
7
7
|
export default class AudioContext extends BaseAudioContext {
|
|
8
8
|
constructor(options?: AudioContextOptions) {
|
|
9
|
-
if (
|
|
9
|
+
if (
|
|
10
|
+
options &&
|
|
11
|
+
options.sampleRate &&
|
|
12
|
+
(options.sampleRate < 8000 || options.sampleRate > 96000)
|
|
13
|
+
) {
|
|
10
14
|
throw new NotSupportedError(
|
|
11
15
|
`The provided sampleRate is not supported: ${options.sampleRate}`
|
|
12
16
|
);
|
|
@@ -14,7 +18,8 @@ export default class AudioContext extends BaseAudioContext {
|
|
|
14
18
|
|
|
15
19
|
super(
|
|
16
20
|
global.createAudioContext(
|
|
17
|
-
options?.sampleRate || AudioManager.getDevicePreferredSampleRate()
|
|
21
|
+
options?.sampleRate || AudioManager.getDevicePreferredSampleRate(),
|
|
22
|
+
options?.initSuspended || false
|
|
18
23
|
)
|
|
19
24
|
);
|
|
20
25
|
}
|
|
@@ -5,9 +5,28 @@ import {
|
|
|
5
5
|
withInfoPlist,
|
|
6
6
|
withAndroidManifest,
|
|
7
7
|
} from '@expo/config-plugins';
|
|
8
|
-
|
|
9
8
|
const pkg = require('react-native-audio-api/package.json');
|
|
10
9
|
|
|
10
|
+
interface Options {
|
|
11
|
+
iosBackgroundMode: boolean;
|
|
12
|
+
androidForegroundService: boolean;
|
|
13
|
+
androidFSPermissions: string[];
|
|
14
|
+
androidFSTypes: string[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const withDefaultOptions = (options: Partial<Options>): Options => {
|
|
18
|
+
return {
|
|
19
|
+
iosBackgroundMode: true,
|
|
20
|
+
androidForegroundService: true,
|
|
21
|
+
androidFSPermissions: [
|
|
22
|
+
'android.permission.FOREGROUND_SERVICE',
|
|
23
|
+
'android.permission.WAKE_LOCK',
|
|
24
|
+
],
|
|
25
|
+
androidFSTypes: ['mediaPlayback'],
|
|
26
|
+
...options,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
11
30
|
const withBackgroundAudio: ConfigPlugin = (config) => {
|
|
12
31
|
return withInfoPlist(config, (iosConfig) => {
|
|
13
32
|
iosConfig.modResults.UIBackgroundModes = [
|
|
@@ -20,18 +39,20 @@ const withBackgroundAudio: ConfigPlugin = (config) => {
|
|
|
20
39
|
});
|
|
21
40
|
};
|
|
22
41
|
|
|
23
|
-
const withAndroidPermissions: ConfigPlugin<
|
|
24
|
-
|
|
25
|
-
|
|
42
|
+
const withAndroidPermissions: ConfigPlugin<Options> = (
|
|
43
|
+
config,
|
|
44
|
+
{ androidFSPermissions }: Options
|
|
45
|
+
) => {
|
|
26
46
|
return AndroidConfig.Permissions.withPermissions(
|
|
27
47
|
config,
|
|
28
48
|
androidFSPermissions
|
|
29
49
|
);
|
|
30
50
|
};
|
|
31
51
|
|
|
32
|
-
const withForegroundService: ConfigPlugin<
|
|
33
|
-
|
|
34
|
-
|
|
52
|
+
const withForegroundService: ConfigPlugin<Options> = (
|
|
53
|
+
config,
|
|
54
|
+
{ androidFSTypes }: Options
|
|
55
|
+
) => {
|
|
35
56
|
return withAndroidManifest(config, (mod) => {
|
|
36
57
|
const manifest = mod.modResults;
|
|
37
58
|
const mainApplication =
|
|
@@ -59,30 +80,16 @@ const withForegroundService: ConfigPlugin<{
|
|
|
59
80
|
});
|
|
60
81
|
};
|
|
61
82
|
|
|
62
|
-
const withAudioAPI: ConfigPlugin<{
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
androidFSTypes?: string[];
|
|
67
|
-
}> = (
|
|
68
|
-
config,
|
|
69
|
-
{
|
|
70
|
-
iosBackgroundMode = true,
|
|
71
|
-
androidForegroundService = true,
|
|
72
|
-
androidFSPermissions = [],
|
|
73
|
-
androidFSTypes = [],
|
|
74
|
-
} = {}
|
|
75
|
-
) => {
|
|
76
|
-
if (iosBackgroundMode) {
|
|
83
|
+
const withAudioAPI: ConfigPlugin<Options> = (config, optionsIn) => {
|
|
84
|
+
const options = withDefaultOptions(optionsIn ?? {});
|
|
85
|
+
|
|
86
|
+
if (options.iosBackgroundMode) {
|
|
77
87
|
config = withBackgroundAudio(config);
|
|
78
88
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
config = withForegroundService(config, {
|
|
84
|
-
androidFSTypes,
|
|
85
|
-
});
|
|
89
|
+
|
|
90
|
+
if (options.androidForegroundService) {
|
|
91
|
+
config = withAndroidPermissions(config, options);
|
|
92
|
+
config = withForegroundService(config, options);
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
return config;
|
package/src/types.ts
CHANGED
|
@@ -210,7 +210,8 @@ export default class AudioBufferSourceNode<
|
|
|
210
210
|
-1200,
|
|
211
211
|
1200,
|
|
212
212
|
0
|
|
213
|
-
)
|
|
213
|
+
),
|
|
214
|
+
context
|
|
214
215
|
);
|
|
215
216
|
|
|
216
217
|
this.playbackRate = new AudioParam(
|
|
@@ -221,11 +222,15 @@ export default class AudioBufferSourceNode<
|
|
|
221
222
|
0,
|
|
222
223
|
Infinity,
|
|
223
224
|
1
|
|
224
|
-
)
|
|
225
|
+
),
|
|
226
|
+
context
|
|
225
227
|
);
|
|
226
228
|
} else {
|
|
227
|
-
this.detune = new AudioParam((node as DefaultSource).detune);
|
|
228
|
-
this.playbackRate = new AudioParam(
|
|
229
|
+
this.detune = new AudioParam((node as DefaultSource).detune, context);
|
|
230
|
+
this.playbackRate = new AudioParam(
|
|
231
|
+
(node as DefaultSource).playbackRate,
|
|
232
|
+
context
|
|
233
|
+
);
|
|
229
234
|
}
|
|
230
235
|
}
|
|
231
236
|
|
|
@@ -24,14 +24,18 @@ export default class AudioContext implements BaseAudioContext {
|
|
|
24
24
|
readonly destination: AudioDestinationNode;
|
|
25
25
|
readonly sampleRate: number;
|
|
26
26
|
|
|
27
|
-
constructor(options?: AudioContextOptions) {
|
|
28
|
-
if (
|
|
27
|
+
constructor(options?: AudioContextOptions, _initSuspended: boolean = false) {
|
|
28
|
+
if (
|
|
29
|
+
options &&
|
|
30
|
+
options.sampleRate &&
|
|
31
|
+
(options.sampleRate < 8000 || options.sampleRate > 96000)
|
|
32
|
+
) {
|
|
29
33
|
throw new NotSupportedError(
|
|
30
34
|
`The provided sampleRate is not supported: ${options.sampleRate}`
|
|
31
35
|
);
|
|
32
36
|
}
|
|
33
37
|
|
|
34
|
-
this.context = new window.AudioContext(options);
|
|
38
|
+
this.context = new window.AudioContext({ sampleRate: options?.sampleRate });
|
|
35
39
|
|
|
36
40
|
this.sampleRate = this.context.sampleRate;
|
|
37
41
|
this.destination = new AudioDestinationNode(this, this.context.destination);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import BaseAudioContext from './BaseAudioContext';
|
|
2
2
|
import { ChannelCountMode, ChannelInterpretation } from '../types';
|
|
3
|
+
import AudioParam from './AudioParam';
|
|
3
4
|
|
|
4
5
|
export default class AudioNode {
|
|
5
6
|
readonly context: BaseAudioContext;
|
|
@@ -21,12 +22,18 @@ export default class AudioNode {
|
|
|
21
22
|
this.channelInterpretation = this.node.channelInterpretation;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
public connect(destination: AudioNode): AudioNode {
|
|
25
|
+
public connect(destination: AudioNode | AudioParam): AudioNode | AudioParam {
|
|
25
26
|
if (this.context !== destination.context) {
|
|
26
|
-
throw new Error(
|
|
27
|
+
throw new Error(
|
|
28
|
+
'Source and destination are from different BaseAudioContexts'
|
|
29
|
+
);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
if (destination instanceof AudioParam) {
|
|
33
|
+
this.node.connect(destination.param);
|
|
34
|
+
} else {
|
|
35
|
+
this.node.connect(destination.node);
|
|
36
|
+
}
|
|
30
37
|
|
|
31
38
|
return destination;
|
|
32
39
|
}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { RangeError, InvalidStateError } from '../errors';
|
|
2
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
2
3
|
|
|
3
4
|
export default class AudioParam {
|
|
4
5
|
readonly defaultValue: number;
|
|
5
6
|
readonly minValue: number;
|
|
6
7
|
readonly maxValue: number;
|
|
8
|
+
readonly context: BaseAudioContext;
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
readonly param: globalThis.AudioParam;
|
|
9
11
|
|
|
10
|
-
constructor(param: globalThis.AudioParam) {
|
|
12
|
+
constructor(param: globalThis.AudioParam, context: BaseAudioContext) {
|
|
11
13
|
this.param = param;
|
|
12
14
|
this.defaultValue = param.defaultValue;
|
|
13
15
|
this.minValue = param.minValue;
|
|
14
16
|
this.maxValue = param.maxValue;
|
|
17
|
+
this.context = context;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
public get value(): number {
|
|
@@ -15,10 +15,10 @@ export default class BiquadFilterNode extends AudioNode {
|
|
|
15
15
|
biquadFilter: globalThis.BiquadFilterNode
|
|
16
16
|
) {
|
|
17
17
|
super(context, biquadFilter);
|
|
18
|
-
this.frequency = new AudioParam(biquadFilter.frequency);
|
|
19
|
-
this.detune = new AudioParam(biquadFilter.detune);
|
|
20
|
-
this.Q = new AudioParam(biquadFilter.Q);
|
|
21
|
-
this.gain = new AudioParam(biquadFilter.gain);
|
|
18
|
+
this.frequency = new AudioParam(biquadFilter.frequency, context);
|
|
19
|
+
this.detune = new AudioParam(biquadFilter.detune, context);
|
|
20
|
+
this.Q = new AudioParam(biquadFilter.Q, context);
|
|
21
|
+
this.gain = new AudioParam(biquadFilter.gain, context);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
public get type(): BiquadFilterType {
|
|
@@ -12,8 +12,8 @@ export default class OscillatorNode extends AudioScheduledSourceNode {
|
|
|
12
12
|
constructor(context: BaseAudioContext, node: globalThis.OscillatorNode) {
|
|
13
13
|
super(context, node);
|
|
14
14
|
|
|
15
|
-
this.detune = new AudioParam(node.detune);
|
|
16
|
-
this.frequency = new AudioParam(node.frequency);
|
|
15
|
+
this.detune = new AudioParam(node.detune, context);
|
|
16
|
+
this.frequency = new AudioParam(node.frequency, context);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
public get type(): OscillatorType {
|