react-native-audio-api 0.6.0-rc.5 → 0.6.0
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/cpp/audioapi/android/AudioAPIModule.cpp +35 -2
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +4 -0
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +31 -17
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +1 -3
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +56 -2
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +0 -12
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +35 -12
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +30 -29
- package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +20 -22
- package/android/src/main/java/com/swmansion/audioapi/system/MediaReceiver.kt +19 -9
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +30 -11
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +34 -27
- package/android/src/main/java/com/swmansion/audioapi/system/VolumeChangeListener.kt +10 -5
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +39 -0
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +20 -14
- package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +2 -3
- package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.h +24 -11
- package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +1 -0
- package/common/cpp/audioapi/HostObjects/AudioRecorderHostObject.h +10 -89
- package/common/cpp/audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h +3 -24
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +2 -2
- package/common/cpp/audioapi/HostObjects/OscillatorNodeHostObject.h +2 -3
- package/common/cpp/audioapi/core/AudioContext.cpp +4 -1
- package/common/cpp/audioapi/core/AudioContext.h +1 -1
- package/common/cpp/audioapi/core/AudioNode.cpp +31 -2
- package/common/cpp/audioapi/core/AudioNode.h +7 -1
- package/common/cpp/audioapi/core/AudioParam.cpp +84 -2
- package/common/cpp/audioapi/core/AudioParam.h +14 -1
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +6 -1
- package/common/cpp/audioapi/core/BaseAudioContext.h +7 -1
- package/common/cpp/audioapi/core/OfflineAudioContext.cpp +3 -2
- package/common/cpp/audioapi/core/OfflineAudioContext.h +1 -1
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +28 -26
- package/common/cpp/audioapi/core/effects/GainNode.cpp +9 -9
- package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +5 -2
- package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +56 -0
- package/common/cpp/audioapi/core/inputs/AudioRecorder.h +13 -13
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +14 -10
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +1 -1
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +7 -6
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +5 -3
- package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +15 -10
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +35 -1
- package/common/cpp/audioapi/core/utils/AudioNodeManager.h +15 -1
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +108 -0
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +62 -0
- package/common/cpp/audioapi/events/AudioEventHandlerRegistryHostObject.h +48 -0
- package/common/cpp/audioapi/jsi/JsiPromise.cpp +3 -4
- package/ios/audioapi/ios/AudioAPIModule.h +13 -0
- package/ios/audioapi/ios/AudioAPIModule.mm +115 -6
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +2 -10
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +6 -17
- package/ios/audioapi/ios/core/NativeAudioPlayer.m +2 -0
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +7 -3
- package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.h +7 -0
- package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.mm +12 -0
- package/ios/audioapi/ios/system/AudioEngine.h +5 -0
- package/ios/audioapi/ios/system/AudioEngine.mm +7 -15
- package/ios/audioapi/ios/system/AudioSessionManager.h +1 -1
- package/ios/audioapi/ios/system/AudioSessionManager.mm +2 -18
- package/ios/audioapi/ios/system/LockScreenManager.h +3 -3
- package/ios/audioapi/ios/system/LockScreenManager.mm +36 -48
- package/ios/audioapi/ios/system/NotificationManager.h +3 -3
- package/ios/audioapi/ios/system/NotificationManager.mm +21 -29
- package/lib/commonjs/api.js +4 -4
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioBufferSourceNode.js +2 -2
- package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioNode.js +8 -2
- package/lib/commonjs/core/AudioNode.js.map +1 -1
- package/lib/commonjs/core/AudioParam.js +2 -1
- package/lib/commonjs/core/AudioParam.js.map +1 -1
- package/lib/commonjs/core/AudioRecorder.js +11 -28
- package/lib/commonjs/core/AudioRecorder.js.map +1 -1
- package/lib/commonjs/core/AudioScheduledSourceNode.js +4 -1
- package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/commonjs/core/BiquadFilterNode.js +4 -4
- package/lib/commonjs/core/BiquadFilterNode.js.map +1 -1
- package/lib/commonjs/core/GainNode.js +1 -1
- package/lib/commonjs/core/GainNode.js.map +1 -1
- package/lib/commonjs/core/OscillatorNode.js +2 -2
- package/lib/commonjs/core/OscillatorNode.js.map +1 -1
- package/lib/commonjs/core/StereoPannerNode.js +1 -1
- package/lib/commonjs/core/StereoPannerNode.js.map +1 -1
- package/lib/commonjs/events/AudioEventEmitter.js +22 -0
- package/lib/commonjs/events/AudioEventEmitter.js.map +1 -0
- package/lib/commonjs/events/AudioEventSubscription.js +20 -0
- package/lib/commonjs/events/AudioEventSubscription.js.map +1 -0
- package/lib/commonjs/events/index.js +21 -0
- package/lib/commonjs/events/index.js.map +1 -0
- package/lib/commonjs/events/types.js +6 -0
- package/lib/commonjs/events/types.js.map +1 -0
- package/lib/commonjs/hooks/useSytemVolume.js +1 -1
- package/lib/commonjs/hooks/useSytemVolume.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js +3 -3
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/specs/index.js +2 -16
- package/lib/commonjs/specs/index.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +22 -28
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/module/api.js +2 -2
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +2 -2
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioNode.js +7 -2
- package/lib/module/core/AudioNode.js.map +1 -1
- package/lib/module/core/AudioParam.js +2 -1
- package/lib/module/core/AudioParam.js.map +1 -1
- package/lib/module/core/AudioRecorder.js +11 -28
- package/lib/module/core/AudioRecorder.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.js +4 -1
- package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/core/BiquadFilterNode.js +4 -4
- package/lib/module/core/BiquadFilterNode.js.map +1 -1
- package/lib/module/core/GainNode.js +1 -1
- package/lib/module/core/GainNode.js.map +1 -1
- package/lib/module/core/OscillatorNode.js +2 -2
- package/lib/module/core/OscillatorNode.js.map +1 -1
- package/lib/module/core/StereoPannerNode.js +1 -1
- package/lib/module/core/StereoPannerNode.js.map +1 -1
- package/lib/module/events/AudioEventEmitter.js +16 -0
- package/lib/module/events/AudioEventEmitter.js.map +1 -0
- package/lib/module/events/AudioEventSubscription.js +15 -0
- package/lib/module/events/AudioEventSubscription.js.map +1 -0
- package/lib/module/events/index.js +6 -0
- package/lib/module/events/index.js.map +1 -0
- package/lib/module/events/types.js +4 -0
- package/lib/module/events/types.js.map +1 -0
- package/lib/module/hooks/useSytemVolume.js +1 -1
- package/lib/module/hooks/useSytemVolume.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js +3 -2
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/specs/index.js +2 -3
- package/lib/module/specs/index.js.map +1 -1
- package/lib/module/system/AudioManager.js +23 -29
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/typescript/api.d.ts +2 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioNode.d.ts +2 -1
- package/lib/typescript/core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioParam.d.ts +4 -2
- package/lib/typescript/core/AudioParam.d.ts.map +1 -1
- package/lib/typescript/core/AudioRecorder.d.ts +4 -14
- package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/lib/typescript/events/AudioEventEmitter.d.ts +10 -0
- package/lib/typescript/events/AudioEventEmitter.d.ts.map +1 -0
- package/lib/typescript/events/AudioEventSubscription.d.ts +11 -0
- package/lib/typescript/events/AudioEventSubscription.d.ts.map +1 -0
- package/lib/typescript/events/index.d.ts +4 -0
- package/lib/typescript/events/index.d.ts.map +1 -0
- package/lib/typescript/events/types.d.ts +50 -0
- package/lib/typescript/events/types.d.ts.map +1 -0
- package/lib/typescript/hooks/useSytemVolume.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +10 -10
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +15 -3
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/specs/index.d.ts +2 -3
- package/lib/typescript/specs/index.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +6 -4
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +0 -34
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +0 -1
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api.ts +6 -3
- package/src/core/AudioBufferSourceNode.ts +2 -2
- package/src/core/AudioNode.ts +8 -3
- package/src/core/AudioParam.ts +5 -2
- package/src/core/AudioRecorder.ts +22 -62
- package/src/core/AudioScheduledSourceNode.ts +13 -2
- package/src/core/BiquadFilterNode.ts +4 -4
- package/src/core/GainNode.ts +1 -1
- package/src/core/OscillatorNode.ts +2 -2
- package/src/core/StereoPannerNode.ts +1 -1
- package/src/events/AudioEventEmitter.ts +29 -0
- package/src/events/AudioEventSubscription.ts +26 -0
- package/src/events/index.ts +4 -0
- package/src/events/types.ts +64 -0
- package/src/hooks/useSytemVolume.ts +2 -1
- package/src/interfaces.ts +19 -20
- package/src/specs/NativeAudioAPIModule.ts +23 -2
- package/src/specs/index.ts +2 -4
- package/src/system/AudioManager.ts +35 -43
- package/src/system/types.ts +0 -42
- package/src/types.ts +0 -8
- package/android/src/main/java/com/swmansion/audioapi/AudioManagerModule.kt +0 -77
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionEventEmitter.kt +0 -88
- package/android/src/oldarch/NativeAudioManagerModuleSpec.java +0 -99
- package/ios/audioapi/ios/AudioManagerModule.h +0 -18
- package/ios/audioapi/ios/AudioManagerModule.mm +0 -108
- package/lib/commonjs/specs/NativeAudioManagerModule.js +0 -42
- package/lib/commonjs/specs/NativeAudioManagerModule.js.map +0 -1
- package/lib/module/specs/NativeAudioManagerModule.js +0 -39
- package/lib/module/specs/NativeAudioManagerModule.js.map +0 -1
- package/lib/typescript/specs/NativeAudioManagerModule.d.ts +0 -18
- package/lib/typescript/specs/NativeAudioManagerModule.d.ts.map +0 -1
- package/src/specs/NativeAudioManagerModule.ts +0 -53
package/lib/typescript/api.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { AudioRecorderOptions } from './types';
|
|
2
|
-
import type { IAudioContext, IAudioRecorder, IOfflineAudioContext } from './interfaces';
|
|
2
|
+
import type { IAudioContext, IAudioRecorder, IOfflineAudioContext, IAudioEventEmitter } from './interfaces';
|
|
3
3
|
declare global {
|
|
4
4
|
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
5
5
|
var createOfflineAudioContext: (numberOfChannels: number, length: number, sampleRate: number) => IOfflineAudioContext;
|
|
6
6
|
var createAudioRecorder: (options: AudioRecorderOptions) => IAudioRecorder;
|
|
7
|
+
var AudioEventEmitter: IAudioEventEmitter;
|
|
7
8
|
}
|
|
8
9
|
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
9
10
|
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;IAC/D,IAAI,yBAAyB,EAAE,CAC7B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,oBAAoB,CAAC;IAE1B,IAAI,mBAAmB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,cAAc,CAAC;IAE3E,IAAI,iBAAiB,EAAE,kBAAkB,CAAC;CAC3C;AAkBD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IAudioNode } from '../interfaces';
|
|
2
|
+
import AudioParam from './AudioParam';
|
|
2
3
|
import { ChannelCountMode, ChannelInterpretation } from '../types';
|
|
3
4
|
import BaseAudioContext from './BaseAudioContext';
|
|
4
5
|
export default class AudioNode {
|
|
@@ -10,7 +11,7 @@ export default class AudioNode {
|
|
|
10
11
|
readonly channelInterpretation: ChannelInterpretation;
|
|
11
12
|
protected readonly node: IAudioNode;
|
|
12
13
|
constructor(context: BaseAudioContext, node: IAudioNode);
|
|
13
|
-
connect(destination: AudioNode): AudioNode;
|
|
14
|
+
connect(destination: AudioNode | AudioParam): AudioNode | AudioParam;
|
|
14
15
|
disconnect(destination?: AudioNode): void;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=AudioNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,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;IACtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAExB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU;IAUhD,OAAO,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"AudioNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,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;IACtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAExB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU;IAUhD,OAAO,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU;IAgBpE,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI;CAGjD"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { IAudioParam } from '../interfaces';
|
|
2
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
2
3
|
export default class AudioParam {
|
|
3
4
|
readonly defaultValue: number;
|
|
4
5
|
readonly minValue: number;
|
|
5
6
|
readonly maxValue: number;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
readonly audioParam: IAudioParam;
|
|
8
|
+
readonly context: BaseAudioContext;
|
|
9
|
+
constructor(audioParam: IAudioParam, context: BaseAudioContext);
|
|
8
10
|
get value(): number;
|
|
9
11
|
set value(value: number);
|
|
10
12
|
setValueAtTime(value: number, startTime: number): AudioParam;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/core/AudioParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,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,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB;IAS9D,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"}
|
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
import { IAudioRecorder } from '../interfaces';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
export type AudioReadyCallback = (buffer: AudioBuffer, numFrames: number, when: number) => void;
|
|
5
|
-
export type ErrorCallback = (error: Error) => void;
|
|
6
|
-
export type StatusChangeCallback = (status: AudioRecorderStatus, previousStatus: AudioRecorderStatus) => void;
|
|
2
|
+
import { AudioRecorderOptions } from '../types';
|
|
3
|
+
import { OnAudioReadyEventType } from '../events/types';
|
|
7
4
|
export default class AudioRecorder {
|
|
8
5
|
protected readonly recorder: IAudioRecorder;
|
|
9
|
-
private
|
|
10
|
-
private onErrorCallback;
|
|
11
|
-
private onStatusChangeCallback;
|
|
12
|
-
private onAudioReadyInternal;
|
|
13
|
-
private onErrorInternal;
|
|
14
|
-
private onStatusChangeInternal;
|
|
6
|
+
private readonly audioEventEmitter;
|
|
15
7
|
constructor(options: AudioRecorderOptions);
|
|
16
8
|
start(): void;
|
|
17
9
|
stop(): void;
|
|
18
|
-
onAudioReady(callback:
|
|
19
|
-
onError(callback: ErrorCallback): void;
|
|
20
|
-
onStatusChange(callback: StatusChangeCallback): void;
|
|
10
|
+
onAudioReady(callback: (event: OnAudioReadyEventType) => void): void;
|
|
21
11
|
}
|
|
22
12
|
//# sourceMappingURL=AudioRecorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/core/AudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/core/AudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAEhC;gBAEU,OAAO,EAAE,oBAAoB;IAIlC,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI;CAgB5E"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import AudioNode from './AudioNode';
|
|
2
|
+
import { EventTypeWithValue } from '../events/types';
|
|
2
3
|
export default class AudioScheduledSourceNode extends AudioNode {
|
|
3
4
|
protected hasBeenStarted: boolean;
|
|
5
|
+
private readonly audioEventEmitter;
|
|
4
6
|
start(when?: number): void;
|
|
5
7
|
stop(when?: number): void;
|
|
6
|
-
set onended(callback: (
|
|
8
|
+
set onended(callback: (event: EventTypeWithValue) => void);
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=AudioScheduledSourceNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioScheduledSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioScheduledSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAC7D,SAAS,CAAC,cAAc,EAAE,OAAO,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAEhC;IAEK,KAAK,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAe7B,IAAI,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAiBnC,IAAW,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAQ/D;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AudioEventName, AudioEventCallback } from './types';
|
|
2
|
+
import AudioEventSubscription from './AudioEventSubscription';
|
|
3
|
+
import { IAudioEventEmitter } from '../interfaces';
|
|
4
|
+
export default class AudioEventEmitter {
|
|
5
|
+
private readonly audioEventEmitter;
|
|
6
|
+
constructor(audioEventEmitter: IAudioEventEmitter);
|
|
7
|
+
addAudioEventListener<Name extends AudioEventName>(name: Name, callback: AudioEventCallback<Name>): AudioEventSubscription;
|
|
8
|
+
removeAudioEventListener<Name extends AudioEventName>(name: Name, subscriptionId: string): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AudioEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioEventEmitter.d.ts","sourceRoot":"","sources":["../../../src/events/AudioEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;gBAE3C,iBAAiB,EAAE,kBAAkB;IAIjD,qBAAqB,CAAC,IAAI,SAAS,cAAc,EAC/C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,GACjC,sBAAsB;IAQzB,wBAAwB,CAAC,IAAI,SAAS,cAAc,EAClD,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,MAAM,GACrB,IAAI;CAGR"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AudioEventName } from './types';
|
|
2
|
+
import { AudioEventEmitter } from './';
|
|
3
|
+
export default class AudioEventSubscription {
|
|
4
|
+
private readonly audioEventEmitter;
|
|
5
|
+
private readonly eventName;
|
|
6
|
+
/** @internal */
|
|
7
|
+
readonly subscriptionId: string;
|
|
8
|
+
constructor(subscriptionId: string, eventName: AudioEventName, audioEventEmitter: AudioEventEmitter);
|
|
9
|
+
remove(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=AudioEventSubscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioEventSubscription.d.ts","sourceRoot":"","sources":["../../../src/events/AudioEventSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,gBAAgB;IAChB,SAAgB,cAAc,EAAE,MAAM,CAAC;gBAGrC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,cAAc,EACzB,iBAAiB,EAAE,iBAAiB;IAO/B,MAAM,IAAI,IAAI;CAMtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import AudioBuffer from '../core/AudioBuffer';
|
|
2
|
+
interface EventEmptyType {
|
|
3
|
+
}
|
|
4
|
+
export interface EventTypeWithValue {
|
|
5
|
+
value: number;
|
|
6
|
+
}
|
|
7
|
+
interface OnInterruptionEventType {
|
|
8
|
+
type: 'ended' | 'began';
|
|
9
|
+
shouldResume: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface OnRouteChangeEventType {
|
|
12
|
+
reason: string;
|
|
13
|
+
}
|
|
14
|
+
interface SystemEvents {
|
|
15
|
+
remotePlay: EventEmptyType;
|
|
16
|
+
remotePause: EventEmptyType;
|
|
17
|
+
remoteStop: EventEmptyType;
|
|
18
|
+
remoteTogglePlayPause: EventEmptyType;
|
|
19
|
+
remoteChangePlaybackRate: EventTypeWithValue;
|
|
20
|
+
remoteNextTrack: EventEmptyType;
|
|
21
|
+
remotePreviousTrack: EventEmptyType;
|
|
22
|
+
remoteSkipForward: EventEmptyType;
|
|
23
|
+
remoteSkipBackward: EventEmptyType;
|
|
24
|
+
remoteSeekForward: EventTypeWithValue;
|
|
25
|
+
remoteSeekBackward: EventTypeWithValue;
|
|
26
|
+
remoteChangePlaybackPosition: EventTypeWithValue;
|
|
27
|
+
volumeChange: EventTypeWithValue;
|
|
28
|
+
interruption: OnInterruptionEventType;
|
|
29
|
+
routeChange: OnRouteChangeEventType;
|
|
30
|
+
}
|
|
31
|
+
export interface OnAudioReadyEventType {
|
|
32
|
+
buffer: AudioBuffer;
|
|
33
|
+
numFrames: number;
|
|
34
|
+
when: number;
|
|
35
|
+
}
|
|
36
|
+
interface AudioAPIEvents {
|
|
37
|
+
ended: EventTypeWithValue;
|
|
38
|
+
audioReady: OnAudioReadyEventType;
|
|
39
|
+
audioError: EventEmptyType;
|
|
40
|
+
systemStateChanged: EventEmptyType;
|
|
41
|
+
}
|
|
42
|
+
type AudioEvents = SystemEvents & AudioAPIEvents;
|
|
43
|
+
export type SystemEventName = keyof SystemEvents;
|
|
44
|
+
export type SystemEventCallback<Name extends SystemEventName> = (event: SystemEvents[Name]) => void;
|
|
45
|
+
export type AudioAPIEventName = keyof AudioAPIEvents;
|
|
46
|
+
export type AudioAPIEventCallback<Name extends AudioAPIEventName> = (event: AudioAPIEvents[Name]) => void;
|
|
47
|
+
export type AudioEventName = keyof AudioEvents;
|
|
48
|
+
export type AudioEventCallback<Name extends AudioEventName> = (event: AudioEvents[Name]) => void;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAE9C,UAAU,cAAc;CAAG;AAE3B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,cAAc,CAAC;IAC3B,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,qBAAqB,EAAE,cAAc,CAAC;IACtC,wBAAwB,EAAE,kBAAkB,CAAC;IAC7C,eAAe,EAAE,cAAc,CAAC;IAChC,mBAAmB,EAAE,cAAc,CAAC;IACpC,iBAAiB,EAAE,cAAc,CAAC;IAClC,kBAAkB,EAAE,cAAc,CAAC;IACnC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,4BAA4B,EAAE,kBAAkB,CAAC;IACjD,YAAY,EAAE,kBAAkB,CAAC;IACjC,YAAY,EAAE,uBAAuB,CAAC;IACtC,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,qBAAqB,CAAC;IAClC,UAAU,EAAE,cAAc,CAAC;IAC3B,kBAAkB,EAAE,cAAc,CAAC;CACpC;AAED,KAAK,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC;AACjD,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,eAAe,IAAI,CAC9D,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KACtB,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC;AACrD,MAAM,MAAM,qBAAqB,CAAC,IAAI,SAAS,iBAAiB,IAAI,CAClE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KACxB,IAAI,CAAC;AAEV,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC;AAC/C,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,cAAc,IAAI,CAC5D,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KACrB,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSytemVolume.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSytemVolume.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"useSytemVolume.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSytemVolume.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,eAAe,WAgBtC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { WindowType, ContextState, OscillatorType, BiquadFilterType, ChannelCountMode,
|
|
1
|
+
import { WindowType, ContextState, OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation } from './types';
|
|
2
|
+
import { AudioEventName, AudioEventCallback } from './events/types';
|
|
2
3
|
export interface IBaseAudioContext {
|
|
3
4
|
readonly destination: IAudioDestinationNode;
|
|
4
5
|
readonly state: ContextState;
|
|
@@ -32,8 +33,8 @@ export interface IAudioNode {
|
|
|
32
33
|
readonly channelCount: number;
|
|
33
34
|
readonly channelCountMode: ChannelCountMode;
|
|
34
35
|
readonly channelInterpretation: ChannelInterpretation;
|
|
35
|
-
connect: (
|
|
36
|
-
disconnect: (
|
|
36
|
+
connect: (destination: IAudioNode | IAudioParam) => void;
|
|
37
|
+
disconnect: (destination?: IAudioNode | IAudioParam) => void;
|
|
37
38
|
}
|
|
38
39
|
export interface IGainNode extends IAudioNode {
|
|
39
40
|
readonly gain: IAudioParam;
|
|
@@ -54,7 +55,7 @@ export interface IAudioDestinationNode extends IAudioNode {
|
|
|
54
55
|
export interface IAudioScheduledSourceNode extends IAudioNode {
|
|
55
56
|
start(when?: number): void;
|
|
56
57
|
stop: (when: number) => void;
|
|
57
|
-
onended:
|
|
58
|
+
onended: string;
|
|
58
59
|
}
|
|
59
60
|
export interface IOscillatorNode extends IAudioScheduledSourceNode {
|
|
60
61
|
readonly frequency: IAudioParam;
|
|
@@ -107,14 +108,13 @@ export interface IAnalyserNode extends IAudioNode {
|
|
|
107
108
|
getFloatTimeDomainData: (array: Float32Array) => void;
|
|
108
109
|
getByteTimeDomainData: (array: Uint8Array) => void;
|
|
109
110
|
}
|
|
110
|
-
export type IAudioReadyCallback = (buffer: IAudioBuffer, numFrames: number, when: number) => void;
|
|
111
|
-
export type IErrorCallback = (error: Error) => void;
|
|
112
|
-
export type IStatusChangeCallback = (status: AudioRecorderStatus, previousStatus: AudioRecorderStatus) => void;
|
|
113
111
|
export interface IAudioRecorder {
|
|
114
112
|
start: () => void;
|
|
115
113
|
stop: () => void;
|
|
116
|
-
onAudioReady:
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
onAudioReady: string;
|
|
115
|
+
}
|
|
116
|
+
export interface IAudioEventEmitter {
|
|
117
|
+
addAudioEventListener<Name extends AudioEventName>(name: Name, callback: AudioEventCallback<Name>): string;
|
|
118
|
+
removeAudioEventListener<Name extends AudioEventName>(name: Name, subscriptionId: string): void;
|
|
119
119
|
}
|
|
120
120
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
|
-
import { TurboModule } from 'react-native';
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import { PermissionStatus } from '../system/types';
|
|
2
3
|
interface Spec extends TurboModule {
|
|
3
4
|
install(): boolean;
|
|
5
|
+
setLockScreenInfo(info: {
|
|
6
|
+
[key: string]: string | boolean | number | undefined;
|
|
7
|
+
}): void;
|
|
8
|
+
resetLockScreenInfo(): void;
|
|
9
|
+
enableRemoteCommand(name: string, enabled: boolean): void;
|
|
10
|
+
setAudioSessionOptions(category: string, mode: string, options: Array<string>): void;
|
|
11
|
+
getDevicePreferredSampleRate(): number;
|
|
12
|
+
observeAudioInterruptions(enabled: boolean): void;
|
|
13
|
+
observeVolumeChanges(enabled: boolean): void;
|
|
14
|
+
requestRecordingPermissions(): Promise<PermissionStatus>;
|
|
15
|
+
checkRecordingPermissions(): Promise<PermissionStatus>;
|
|
4
16
|
}
|
|
5
|
-
declare const
|
|
6
|
-
export
|
|
17
|
+
declare const NativeAudioAPIModule: Spec | null;
|
|
18
|
+
export { NativeAudioAPIModule };
|
|
7
19
|
//# sourceMappingURL=NativeAudioAPIModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeAudioAPIModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioAPIModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NativeAudioAPIModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioAPIModule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,UAAU,IAAK,SAAQ,WAAW;IAChC,OAAO,IAAI,OAAO,CAAC;IAEnB,iBAAiB,CAAC,IAAI,EAAE;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;KACtD,GAAG,IAAI,CAAC;IACT,mBAAmB,IAAI,IAAI,CAAC;IAC5B,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1D,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GACrB,IAAI,CAAC;IACR,4BAA4B,IAAI,MAAM,CAAC;IACvC,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED,QAAA,MAAM,oBAAoB,aAAkD,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import NativeAudioAPIModule from './NativeAudioAPIModule';
|
|
2
|
-
|
|
3
|
-
export { NativeAudioAPIModule, AudioManagerModule, eventEmitter };
|
|
1
|
+
import { NativeAudioAPIModule } from './NativeAudioAPIModule';
|
|
2
|
+
export { NativeAudioAPIModule };
|
|
4
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/specs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/specs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { SessionOptions, LockScreenInfo,
|
|
2
|
-
import {
|
|
1
|
+
import { SessionOptions, LockScreenInfo, PermissionStatus } from './types';
|
|
2
|
+
import { SystemEventName, SystemEventCallback } from '../events/types';
|
|
3
|
+
import { AudioEventSubscription } from '../events';
|
|
3
4
|
declare class AudioManager {
|
|
5
|
+
private readonly audioEventEmitter;
|
|
6
|
+
constructor();
|
|
4
7
|
setLockScreenInfo(info: LockScreenInfo): void;
|
|
5
8
|
resetLockScreenInfo(): void;
|
|
6
9
|
setAudioSessionOptions(options: SessionOptions): void;
|
|
7
10
|
getDevicePreferredSampleRate(): number;
|
|
8
11
|
observeAudioInterruptions(enabled: boolean): void;
|
|
9
12
|
observeVolumeChanges(enabled: boolean): void;
|
|
10
|
-
|
|
11
|
-
enableRemoteEvent<Name extends RemoteEventName>(name: Name, callback?: RemoteEventCallback<Name>): EmitterSubscription | null;
|
|
13
|
+
enableSystemEvent<Name extends SystemEventName>(name: Name, callback?: SystemEventCallback<Name>, enabled?: boolean): AudioEventSubscription | null;
|
|
12
14
|
requestRecordingPermissions(): Promise<PermissionStatus>;
|
|
13
15
|
checkRecordingPermissions(): Promise<PermissionStatus>;
|
|
14
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAqB,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAYtE,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;;IAKtD,iBAAiB,CAAC,IAAI,EAAE,cAAc;IAItC,mBAAmB;IAInB,sBAAsB,CAAC,OAAO,EAAE,cAAc;IAQ9C,4BAA4B,IAAI,MAAM;IAItC,yBAAyB,CAAC,OAAO,EAAE,OAAO;IAI1C,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAIrC,iBAAiB,CAAC,IAAI,SAAS,eAAe,EAC5C,IAAI,EAAE,IAAI,EACV,QAAQ,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,EACpC,OAAO,UAAO,GACb,sBAAsB,GAAG,IAAI;IAU1B,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIxD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG7D;;AAED,wBAAkC"}
|
|
@@ -21,40 +21,6 @@ export interface LockScreenInfo extends BaseLockScreenInfo {
|
|
|
21
21
|
speed?: number;
|
|
22
22
|
elapsedTime?: number;
|
|
23
23
|
}
|
|
24
|
-
interface RemoteEmptyType {
|
|
25
|
-
}
|
|
26
|
-
interface RemoteControlEventType {
|
|
27
|
-
value: number;
|
|
28
|
-
}
|
|
29
|
-
interface OnInterruptionEventType {
|
|
30
|
-
type: 'ended' | 'began';
|
|
31
|
-
shouldResume: boolean;
|
|
32
|
-
}
|
|
33
|
-
interface OnRouteChangeEventType {
|
|
34
|
-
reason: string;
|
|
35
|
-
}
|
|
36
|
-
interface RemoteCommands {
|
|
37
|
-
play: RemoteEmptyType;
|
|
38
|
-
pause: RemoteEmptyType;
|
|
39
|
-
stop: RemoteEmptyType;
|
|
40
|
-
togglePlayPause: RemoteEmptyType;
|
|
41
|
-
changePlaybackRate: RemoteEmptyType;
|
|
42
|
-
nextTrack: RemoteEmptyType;
|
|
43
|
-
previousTrack: RemoteEmptyType;
|
|
44
|
-
skipForward: RemoteEmptyType;
|
|
45
|
-
skipBackward: RemoteEmptyType;
|
|
46
|
-
seekForward: RemoteEmptyType;
|
|
47
|
-
seekBackward: RemoteEmptyType;
|
|
48
|
-
changePlaybackPosition: RemoteEmptyType;
|
|
49
|
-
}
|
|
50
|
-
interface RemoteEvents {
|
|
51
|
-
volumeChange: RemoteControlEventType;
|
|
52
|
-
interruption: OnInterruptionEventType;
|
|
53
|
-
routeChange: OnRouteChangeEventType;
|
|
54
|
-
}
|
|
55
|
-
export type RemoteCommandName = keyof RemoteCommands;
|
|
56
|
-
export type RemoteEventName = keyof RemoteEvents;
|
|
57
|
-
export type RemoteEventCallback<Name extends RemoteEventName> = (event: RemoteEvents[Name]) => void;
|
|
58
24
|
export type PermissionStatus = 'Undetermined' | 'Denied' | 'Granted';
|
|
59
25
|
export {};
|
|
60
26
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/system/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,YAAY,GACZ,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,MAAM,OAAO,GACf,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,aAAa,GACb,aAAa,GACb,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,qCAAqC,GACrC,sCAAsC,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/system/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,YAAY,GACZ,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,MAAM,OAAO,GACf,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,aAAa,GACb,aAAa,GACb,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,qCAAqC,GACrC,sCAAsC,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC"}
|
|
@@ -22,5 +22,4 @@ export type WindowType = 'blackman' | 'hann';
|
|
|
22
22
|
export interface AudioBufferSourceNodeOptions {
|
|
23
23
|
pitchCorrection: boolean;
|
|
24
24
|
}
|
|
25
|
-
export type AudioRecorderStatus = 'idle' | 'initializing' | 'ready' | 'running' | 'stopping' | 'error';
|
|
26
25
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -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;CACpB;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
|
+
{"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;CACpB;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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.6.0
|
|
3
|
+
"version": "0.6.0",
|
|
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"
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"lint": "yarn lint:js && yarn lint:cpp && yarn lint:ios && yarn lint:kotlin",
|
|
44
44
|
"lint:js": "eslint src && yarn prettier --check src",
|
|
45
45
|
"lint:cpp": "./scripts/cpplint.sh",
|
|
46
|
-
"lint:ios": "yarn format:ios
|
|
46
|
+
"lint:ios": "yarn format:ios -Werror",
|
|
47
47
|
"lint:kotlin": "ktlint 'android/src/main/java/**/*.kt'",
|
|
48
48
|
"format": "yarn format:js && yarn format:android:cpp && yarn format:android:kotlin && yarn format:ios && yarn format:common",
|
|
49
49
|
"format:js": "prettier --write --list-different src",
|
|
50
50
|
"format:android:cpp": "find android/src/ -path android/src/main/cpp/audioapi/android/libs -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
51
51
|
"format:android:kotlin": "ktlint -F 'android/src/main/java/**/*.kt'",
|
|
52
|
-
"format:ios": "find ios/
|
|
52
|
+
"format:ios": "find ios/audioapi/ios -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" | xargs clang-format -i",
|
|
53
53
|
"format:common": "find common/cpp/ -path 'common/cpp/audioapi/libs' -prune -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
54
54
|
"build": "bob build",
|
|
55
55
|
"create:package": "./scripts/create-package.sh",
|
package/src/api.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import NativeAudioAPIModule from './specs
|
|
1
|
+
import { NativeAudioAPIModule } from './specs';
|
|
2
2
|
import { AudioRecorderOptions } from './types';
|
|
3
3
|
import type {
|
|
4
4
|
IAudioContext,
|
|
5
5
|
IAudioRecorder,
|
|
6
6
|
IOfflineAudioContext,
|
|
7
|
+
IAudioEventEmitter,
|
|
7
8
|
} from './interfaces';
|
|
8
9
|
|
|
9
10
|
/* eslint-disable no-var */
|
|
@@ -16,14 +17,16 @@ declare global {
|
|
|
16
17
|
) => IOfflineAudioContext;
|
|
17
18
|
|
|
18
19
|
var createAudioRecorder: (options: AudioRecorderOptions) => IAudioRecorder;
|
|
19
|
-
}
|
|
20
20
|
|
|
21
|
+
var AudioEventEmitter: IAudioEventEmitter;
|
|
22
|
+
}
|
|
21
23
|
/* eslint-disable no-var */
|
|
22
24
|
|
|
23
25
|
if (
|
|
24
26
|
global.createAudioContext == null ||
|
|
25
27
|
global.createOfflineAudioContext == null ||
|
|
26
|
-
global.createAudioRecorder == null
|
|
28
|
+
global.createAudioRecorder == null ||
|
|
29
|
+
global.AudioEventEmitter == null
|
|
27
30
|
) {
|
|
28
31
|
if (!NativeAudioAPIModule) {
|
|
29
32
|
throw new Error(
|
|
@@ -12,8 +12,8 @@ export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
12
12
|
constructor(context: BaseAudioContext, node: IAudioBufferSourceNode) {
|
|
13
13
|
super(context, node);
|
|
14
14
|
|
|
15
|
-
this.detune = new AudioParam(node.detune);
|
|
16
|
-
this.playbackRate = new AudioParam(node.playbackRate);
|
|
15
|
+
this.detune = new AudioParam(node.detune, context);
|
|
16
|
+
this.playbackRate = new AudioParam(node.playbackRate, context);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
public get buffer(): AudioBuffer | null {
|
package/src/core/AudioNode.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IAudioNode } from '../interfaces';
|
|
2
|
+
import AudioParam from './AudioParam';
|
|
2
3
|
import { ChannelCountMode, ChannelInterpretation } from '../types';
|
|
3
4
|
import BaseAudioContext from './BaseAudioContext';
|
|
4
5
|
import { InvalidAccessError } from '../errors';
|
|
@@ -22,14 +23,18 @@ export default class AudioNode {
|
|
|
22
23
|
this.channelInterpretation = this.node.channelInterpretation;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
public connect(destination: AudioNode): AudioNode {
|
|
26
|
+
public connect(destination: AudioNode | AudioParam): AudioNode | AudioParam {
|
|
26
27
|
if (this.context !== destination.context) {
|
|
27
28
|
throw new InvalidAccessError(
|
|
28
|
-
'
|
|
29
|
+
'Source and destination are from different BaseAudioContexts'
|
|
29
30
|
);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
if (destination instanceof AudioParam) {
|
|
34
|
+
this.node.connect(destination.audioParam);
|
|
35
|
+
} else {
|
|
36
|
+
this.node.connect(destination.node);
|
|
37
|
+
}
|
|
33
38
|
|
|
34
39
|
return destination;
|
|
35
40
|
}
|
package/src/core/AudioParam.ts
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { IAudioParam } from '../interfaces';
|
|
2
2
|
import { RangeError, InvalidStateError } from '../errors';
|
|
3
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
3
4
|
|
|
4
5
|
export default class AudioParam {
|
|
5
6
|
readonly defaultValue: number;
|
|
6
7
|
readonly minValue: number;
|
|
7
8
|
readonly maxValue: number;
|
|
8
|
-
|
|
9
|
+
readonly audioParam: IAudioParam;
|
|
10
|
+
readonly context: BaseAudioContext;
|
|
9
11
|
|
|
10
|
-
constructor(audioParam: IAudioParam) {
|
|
12
|
+
constructor(audioParam: IAudioParam, context: BaseAudioContext) {
|
|
11
13
|
this.audioParam = audioParam;
|
|
12
14
|
this.value = audioParam.value;
|
|
13
15
|
this.defaultValue = audioParam.defaultValue;
|
|
14
16
|
this.minValue = audioParam.minValue;
|
|
15
17
|
this.maxValue = audioParam.maxValue;
|
|
18
|
+
this.context = context;
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
public get value(): number {
|