react-native-audio-api 0.6.2-rc.6 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +25 -0
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +13 -0
- package/common/cpp/audioapi/HostObjects/AudioBufferBaseSourceNodeHostObject.h +60 -0
- package/common/cpp/audioapi/HostObjects/AudioBufferQueueSourceNodeHostObject.h +5 -67
- package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +26 -56
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +9 -0
- package/common/cpp/audioapi/HostObjects/CustomProcessorNodeHostObject.h +54 -0
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +9 -0
- package/common/cpp/audioapi/core/BaseAudioContext.h +2 -0
- package/common/cpp/audioapi/core/effects/CustomProcessorNode.cpp +173 -0
- package/common/cpp/audioapi/core/effects/CustomProcessorNode.h +186 -0
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +104 -0
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +54 -0
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +12 -129
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +8 -37
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +4 -93
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +4 -30
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +1 -11
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +2 -3
- package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +0 -5
- package/common/cpp/audioapi/core/sources/OscillatorNode.h +0 -1
- package/common/cpp/audioapi/core/utils/AudioNodeDestructor.cpp +3 -1
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +1 -1
- package/ios/audioapi/ios/system/AudioEngine.h +1 -0
- package/ios/audioapi/ios/system/AudioEngine.mm +14 -3
- package/ios/audioapi/ios/system/AudioSessionManager.h +1 -0
- package/ios/audioapi/ios/system/AudioSessionManager.mm +10 -0
- package/ios/audioapi/ios/system/NotificationManager.mm +2 -4
- package/lib/commonjs/api.js +7 -0
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioBufferBaseSourceNode.js +29 -0
- package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -0
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js +5 -22
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioBufferSourceNode.js +4 -21
- package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +4 -0
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/CustomProcessorNode.js +23 -0
- package/lib/commonjs/core/CustomProcessorNode.js.map +1 -0
- package/lib/commonjs/web-core/AudioScheduledSourceNode.js +1 -4
- package/lib/commonjs/web-core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/api.js +1 -0
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioBufferBaseSourceNode.js +23 -0
- package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -0
- package/lib/module/core/AudioBufferQueueSourceNode.js +5 -22
- package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +4 -21
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +4 -0
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/CustomProcessorNode.js +17 -0
- package/lib/module/core/CustomProcessorNode.js.map +1 -0
- package/lib/module/web-core/AudioScheduledSourceNode.js +1 -4
- package/lib/module/web-core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/typescript/api.d.ts +1 -0
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +13 -0
- package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -0
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +3 -12
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts +2 -11
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +2 -2
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +2 -0
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/CustomProcessorNode.d.ts +12 -0
- package/lib/typescript/core/CustomProcessorNode.d.ts.map +1 -0
- package/lib/typescript/events/types.d.ts +2 -7
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +16 -13
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +1 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts +2 -1
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api.ts +1 -0
- package/src/core/AudioBufferBaseSourceNode.ts +33 -0
- package/src/core/AudioBufferQueueSourceNode.ts +3 -35
- package/src/core/AudioBufferSourceNode.ts +10 -33
- package/src/core/AudioScheduledSourceNode.ts +2 -2
- package/src/core/BaseAudioContext.ts +8 -0
- package/src/core/CustomProcessorNode.ts +28 -0
- package/src/events/types.ts +2 -8
- package/src/interfaces.ts +25 -23
- package/src/types.ts +2 -0
- package/src/web-core/AudioScheduledSourceNode.tsx +3 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WindowType, ContextState, OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation } from './types';
|
|
1
|
+
import { WindowType, ContextState, OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ProcessorMode } from './types';
|
|
2
2
|
import { AudioEventName, AudioEventCallback } from './events/types';
|
|
3
3
|
export interface IBaseAudioContext {
|
|
4
4
|
readonly destination: IAudioDestinationNode;
|
|
@@ -6,6 +6,7 @@ export interface IBaseAudioContext {
|
|
|
6
6
|
readonly sampleRate: number;
|
|
7
7
|
readonly currentTime: number;
|
|
8
8
|
createOscillator(): IOscillatorNode;
|
|
9
|
+
createCustomProcessor(identifier: string): ICustomProcessorNode;
|
|
9
10
|
createGain(): IGainNode;
|
|
10
11
|
createStereoPanner(): IStereoPannerNode;
|
|
11
12
|
createBiquadFilter: () => IBiquadFilterNode;
|
|
@@ -38,6 +39,10 @@ export interface IAudioNode {
|
|
|
38
39
|
connect: (destination: IAudioNode | IAudioParam) => void;
|
|
39
40
|
disconnect: (destination?: IAudioNode | IAudioParam) => void;
|
|
40
41
|
}
|
|
42
|
+
export interface ICustomProcessorNode extends IAudioNode {
|
|
43
|
+
readonly customProcessor: IAudioParam;
|
|
44
|
+
processorMode: ProcessorMode;
|
|
45
|
+
}
|
|
41
46
|
export interface IGainNode extends IAudioNode {
|
|
42
47
|
readonly gain: IAudioParam;
|
|
43
48
|
}
|
|
@@ -59,32 +64,30 @@ export interface IAudioScheduledSourceNode extends IAudioNode {
|
|
|
59
64
|
stop: (when: number) => void;
|
|
60
65
|
onended: string;
|
|
61
66
|
}
|
|
67
|
+
export interface IAudioBufferBaseSourceNode extends IAudioScheduledSourceNode {
|
|
68
|
+
detune: IAudioParam;
|
|
69
|
+
playbackRate: IAudioParam;
|
|
70
|
+
onPositionChanged: string;
|
|
71
|
+
onPositionChangedInterval: number;
|
|
72
|
+
}
|
|
62
73
|
export interface IOscillatorNode extends IAudioScheduledSourceNode {
|
|
63
74
|
readonly frequency: IAudioParam;
|
|
64
75
|
readonly detune: IAudioParam;
|
|
65
76
|
type: OscillatorType;
|
|
66
77
|
setPeriodicWave(periodicWave: IPeriodicWave): void;
|
|
67
78
|
}
|
|
68
|
-
export interface IAudioBufferSourceNode extends
|
|
79
|
+
export interface IAudioBufferSourceNode extends IAudioBufferBaseSourceNode {
|
|
69
80
|
buffer: IAudioBuffer | null;
|
|
70
81
|
loop: boolean;
|
|
71
82
|
loopSkip: boolean;
|
|
72
83
|
loopStart: number;
|
|
73
84
|
loopEnd: number;
|
|
74
|
-
detune: IAudioParam;
|
|
75
|
-
playbackRate: IAudioParam;
|
|
76
85
|
start: (when?: number, offset?: number, duration?: number) => void;
|
|
77
|
-
|
|
78
|
-
onPositionChangedInterval: number;
|
|
86
|
+
setBuffer: (audioBufferSourceNode: IAudioBufferSourceNode, audioBuffer: IAudioBuffer | null) => void;
|
|
79
87
|
}
|
|
80
|
-
export interface IAudioBufferQueueSourceNode extends
|
|
81
|
-
|
|
82
|
-
playbackRate: IAudioParam;
|
|
83
|
-
enqueueBuffer: (audioBuffer: IAudioBuffer, bufferId: number, isLastBuffer: boolean) => void;
|
|
84
|
-
start: (when: number, offset?: number) => void;
|
|
88
|
+
export interface IAudioBufferQueueSourceNode extends IAudioBufferBaseSourceNode {
|
|
89
|
+
enqueueBuffer: (audioBuffer: IAudioBuffer, isLastBuffer: boolean) => void;
|
|
85
90
|
pause: () => void;
|
|
86
|
-
onPositionChanged: string;
|
|
87
|
-
onPositionChangedInterval: number;
|
|
88
91
|
}
|
|
89
92
|
export interface IAudioBuffer {
|
|
90
93
|
readonly length: number;
|
|
@@ -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,qBAAqB,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,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
|
+
{"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;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import AudioNode from './AudioNode';
|
|
2
|
+
import { EventEmptyType } from '../events/types';
|
|
2
3
|
export default class AudioScheduledSourceNode extends AudioNode {
|
|
3
4
|
protected hasBeenStarted: boolean;
|
|
4
5
|
start(when?: number): void;
|
|
5
6
|
stop(when?: number): void;
|
|
6
|
-
set onended(callback: (
|
|
7
|
+
set onended(callback: (event: EventEmptyType) => void);
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=AudioScheduledSourceNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioScheduledSourceNode.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioScheduledSourceNode.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAC7D,SAAS,CAAC,cAAc,EAAE,OAAO,CAAS;IAEnC,KAAK,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAe7B,IAAI,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAiBnC,IAAW,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAE3D;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.6.2
|
|
3
|
+
"version": "0.6.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
|
"bin": {
|
|
6
6
|
"setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
|
package/src/api.ts
CHANGED
|
@@ -52,6 +52,7 @@ export { default as AudioParam } from './core/AudioParam';
|
|
|
52
52
|
export { default as AudioScheduledSourceNode } from './core/AudioScheduledSourceNode';
|
|
53
53
|
export { default as BaseAudioContext } from './core/BaseAudioContext';
|
|
54
54
|
export { default as BiquadFilterNode } from './core/BiquadFilterNode';
|
|
55
|
+
export { default as CustomProcessorNode } from './core/CustomProcessorNode';
|
|
55
56
|
export { default as GainNode } from './core/GainNode';
|
|
56
57
|
export { default as OscillatorNode } from './core/OscillatorNode';
|
|
57
58
|
export { default as StereoPannerNode } from './core/StereoPannerNode';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IAudioBufferBaseSourceNode } from '../interfaces';
|
|
2
|
+
import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
3
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
4
|
+
import AudioParam from './AudioParam';
|
|
5
|
+
import { EventTypeWithValue } from '../events/types';
|
|
6
|
+
|
|
7
|
+
export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode {
|
|
8
|
+
readonly playbackRate: AudioParam;
|
|
9
|
+
readonly detune: AudioParam;
|
|
10
|
+
|
|
11
|
+
constructor(context: BaseAudioContext, node: IAudioBufferBaseSourceNode) {
|
|
12
|
+
super(context, node);
|
|
13
|
+
|
|
14
|
+
this.detune = new AudioParam(node.detune, context);
|
|
15
|
+
this.playbackRate = new AudioParam(node.playbackRate, context);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// eslint-disable-next-line accessor-pairs
|
|
19
|
+
public set onPositionChanged(callback: (event: EventTypeWithValue) => void) {
|
|
20
|
+
const subscription = this.audioEventEmitter.addAudioEventListener(
|
|
21
|
+
'positionChanged',
|
|
22
|
+
callback
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
(this.node as IAudioBufferBaseSourceNode).onPositionChanged =
|
|
26
|
+
subscription.subscriptionId;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// eslint-disable-next-line accessor-pairs
|
|
30
|
+
public set onPositionChangedInterval(value: number) {
|
|
31
|
+
(this.node as IAudioBufferBaseSourceNode).onPositionChangedInterval = value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,30 +1,15 @@
|
|
|
1
1
|
import { IAudioBufferQueueSourceNode } from '../interfaces';
|
|
2
|
-
import
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
2
|
+
import AudioBufferBaseSourceNode from './AudioBufferBaseSourceNode';
|
|
4
3
|
import AudioBuffer from './AudioBuffer';
|
|
5
|
-
import AudioParam from './AudioParam';
|
|
6
4
|
import { RangeError } from '../errors';
|
|
7
|
-
import { EventTypeWithValue } from '../events/types';
|
|
8
|
-
|
|
9
|
-
export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode {
|
|
10
|
-
readonly playbackRate: AudioParam;
|
|
11
|
-
readonly detune: AudioParam;
|
|
12
|
-
|
|
13
|
-
constructor(context: BaseAudioContext, node: IAudioBufferQueueSourceNode) {
|
|
14
|
-
super(context, node);
|
|
15
|
-
|
|
16
|
-
this.detune = new AudioParam(node.detune, context);
|
|
17
|
-
this.playbackRate = new AudioParam(node.playbackRate, context);
|
|
18
|
-
}
|
|
19
5
|
|
|
6
|
+
export default class AudioBufferQueueSourceNode extends AudioBufferBaseSourceNode {
|
|
20
7
|
public enqueueBuffer(
|
|
21
8
|
buffer: AudioBuffer,
|
|
22
|
-
bufferId: number = 0,
|
|
23
9
|
isLastBuffer: boolean = false
|
|
24
10
|
): void {
|
|
25
11
|
(this.node as IAudioBufferQueueSourceNode).enqueueBuffer(
|
|
26
12
|
buffer.buffer,
|
|
27
|
-
bufferId,
|
|
28
13
|
isLastBuffer
|
|
29
14
|
);
|
|
30
15
|
}
|
|
@@ -44,7 +29,7 @@ export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode
|
|
|
44
29
|
}
|
|
45
30
|
}
|
|
46
31
|
|
|
47
|
-
(this.node as IAudioBufferQueueSourceNode).start(when
|
|
32
|
+
(this.node as IAudioBufferQueueSourceNode).start(when);
|
|
48
33
|
}
|
|
49
34
|
|
|
50
35
|
public override stop(when: number = 0): void {
|
|
@@ -60,21 +45,4 @@ export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode
|
|
|
60
45
|
public pause(): void {
|
|
61
46
|
(this.node as IAudioBufferQueueSourceNode).pause();
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
// eslint-disable-next-line accessor-pairs
|
|
65
|
-
public set onPositionChanged(callback: (event: EventTypeWithValue) => void) {
|
|
66
|
-
const subscription = this.audioEventEmitter.addAudioEventListener(
|
|
67
|
-
'positionChanged',
|
|
68
|
-
callback
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
(this.node as IAudioBufferQueueSourceNode).onPositionChanged =
|
|
72
|
-
subscription.subscriptionId;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// eslint-disable-next-line accessor-pairs
|
|
76
|
-
public set onPositionChangedInterval(value: number) {
|
|
77
|
-
(this.node as IAudioBufferQueueSourceNode).onPositionChangedInterval =
|
|
78
|
-
value;
|
|
79
|
-
}
|
|
80
48
|
}
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
import { IAudioBufferSourceNode } from '../interfaces';
|
|
2
|
-
import
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
2
|
+
import AudioBufferBaseSourceNode from './AudioBufferBaseSourceNode';
|
|
4
3
|
import AudioBuffer from './AudioBuffer';
|
|
5
|
-
import AudioParam from './AudioParam';
|
|
6
4
|
import { InvalidStateError, RangeError } from '../errors';
|
|
7
|
-
import { EventTypeWithValue } from '../events/types';
|
|
8
|
-
|
|
9
|
-
export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
10
|
-
readonly playbackRate: AudioParam;
|
|
11
|
-
readonly detune: AudioParam;
|
|
12
|
-
|
|
13
|
-
constructor(context: BaseAudioContext, node: IAudioBufferSourceNode) {
|
|
14
|
-
super(context, node);
|
|
15
|
-
|
|
16
|
-
this.detune = new AudioParam(node.detune, context);
|
|
17
|
-
this.playbackRate = new AudioParam(node.playbackRate, context);
|
|
18
|
-
}
|
|
19
5
|
|
|
6
|
+
export default class AudioBufferSourceNode extends AudioBufferBaseSourceNode {
|
|
20
7
|
public get buffer(): AudioBuffer | null {
|
|
21
8
|
const buffer = (this.node as IAudioBufferSourceNode).buffer;
|
|
22
9
|
if (!buffer) {
|
|
@@ -27,11 +14,17 @@ export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
27
14
|
|
|
28
15
|
public set buffer(buffer: AudioBuffer | null) {
|
|
29
16
|
if (!buffer) {
|
|
30
|
-
(this.node as IAudioBufferSourceNode).
|
|
17
|
+
(this.node as IAudioBufferSourceNode).setBuffer(
|
|
18
|
+
this.node as IAudioBufferSourceNode,
|
|
19
|
+
null
|
|
20
|
+
);
|
|
31
21
|
return;
|
|
32
22
|
}
|
|
33
23
|
|
|
34
|
-
(this.node as IAudioBufferSourceNode).
|
|
24
|
+
(this.node as IAudioBufferSourceNode).setBuffer(
|
|
25
|
+
this.node as IAudioBufferSourceNode,
|
|
26
|
+
buffer.buffer
|
|
27
|
+
);
|
|
35
28
|
}
|
|
36
29
|
|
|
37
30
|
public get loopSkip(): boolean {
|
|
@@ -92,20 +85,4 @@ export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
92
85
|
this.hasBeenStarted = true;
|
|
93
86
|
(this.node as IAudioBufferSourceNode).start(when, offset, duration);
|
|
94
87
|
}
|
|
95
|
-
|
|
96
|
-
// eslint-disable-next-line accessor-pairs
|
|
97
|
-
public set onPositionChanged(callback: (event: EventTypeWithValue) => void) {
|
|
98
|
-
const subscription = this.audioEventEmitter.addAudioEventListener(
|
|
99
|
-
'positionChanged',
|
|
100
|
-
callback
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
(this.node as IAudioBufferSourceNode).onPositionChanged =
|
|
104
|
-
subscription.subscriptionId;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// eslint-disable-next-line accessor-pairs
|
|
108
|
-
public set onPositionChangedInterval(value: number) {
|
|
109
|
-
(this.node as IAudioBufferSourceNode).onPositionChangedInterval = value;
|
|
110
|
-
}
|
|
111
88
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IAudioScheduledSourceNode } from '../interfaces';
|
|
2
2
|
import AudioNode from './AudioNode';
|
|
3
3
|
import { InvalidStateError, RangeError } from '../errors';
|
|
4
|
-
import {
|
|
4
|
+
import { EventEmptyType } from '../events/types';
|
|
5
5
|
import { AudioEventEmitter } from '../events';
|
|
6
6
|
|
|
7
7
|
export default class AudioScheduledSourceNode extends AudioNode {
|
|
@@ -42,7 +42,7 @@ export default class AudioScheduledSourceNode extends AudioNode {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
// eslint-disable-next-line accessor-pairs
|
|
45
|
-
public set onended(callback: (event:
|
|
45
|
+
public set onended(callback: (event: EventEmptyType) => void) {
|
|
46
46
|
const subscription = this.audioEventEmitter.addAudioEventListener(
|
|
47
47
|
'ended',
|
|
48
48
|
callback
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
} from '../types';
|
|
7
7
|
import AudioDestinationNode from './AudioDestinationNode';
|
|
8
8
|
import OscillatorNode from './OscillatorNode';
|
|
9
|
+
import CustomProcessorNode from './CustomProcessorNode';
|
|
9
10
|
import GainNode from './GainNode';
|
|
10
11
|
import StereoPannerNode from './StereoPannerNode';
|
|
11
12
|
import BiquadFilterNode from './BiquadFilterNode';
|
|
@@ -39,6 +40,13 @@ export default class BaseAudioContext {
|
|
|
39
40
|
return new OscillatorNode(this, this.context.createOscillator());
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
createCustomProcessor(identifier: string): CustomProcessorNode {
|
|
44
|
+
return new CustomProcessorNode(
|
|
45
|
+
this,
|
|
46
|
+
this.context.createCustomProcessor(identifier)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
42
50
|
createGain(): GainNode {
|
|
43
51
|
return new GainNode(this, this.context.createGain());
|
|
44
52
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ICustomProcessorNode } from '../interfaces';
|
|
2
|
+
import { ProcessorMode } from '../types';
|
|
3
|
+
import AudioNode from './AudioNode';
|
|
4
|
+
import AudioParam from './AudioParam';
|
|
5
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
6
|
+
|
|
7
|
+
export default class CustomProcessorNode extends AudioNode {
|
|
8
|
+
readonly customProcessor: AudioParam;
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
context: BaseAudioContext,
|
|
12
|
+
customProcessor: ICustomProcessorNode
|
|
13
|
+
) {
|
|
14
|
+
super(context, customProcessor);
|
|
15
|
+
this.customProcessor = new AudioParam(
|
|
16
|
+
customProcessor.customProcessor,
|
|
17
|
+
context
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public get processorMode(): ProcessorMode {
|
|
22
|
+
return (this.node as ICustomProcessorNode).processorMode;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public set processorMode(value: ProcessorMode) {
|
|
26
|
+
(this.node as ICustomProcessorNode).processorMode = value;
|
|
27
|
+
}
|
|
28
|
+
}
|
package/src/events/types.ts
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import AudioBuffer from '../core/AudioBuffer';
|
|
2
2
|
|
|
3
|
-
interface EventEmptyType {}
|
|
3
|
+
export interface EventEmptyType {}
|
|
4
4
|
|
|
5
5
|
export interface EventTypeWithValue {
|
|
6
6
|
value: number;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export interface OnEndedEventType {
|
|
10
|
-
value: number;
|
|
11
|
-
state: 'stopped' | 'ended';
|
|
12
|
-
bufferId: number | undefined;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
9
|
interface OnInterruptionEventType {
|
|
16
10
|
type: 'ended' | 'began';
|
|
17
11
|
shouldResume: boolean;
|
|
@@ -57,7 +51,7 @@ export interface OnAudioReadyEventType {
|
|
|
57
51
|
}
|
|
58
52
|
|
|
59
53
|
interface AudioAPIEvents {
|
|
60
|
-
ended:
|
|
54
|
+
ended: EventEmptyType;
|
|
61
55
|
audioReady: OnAudioReadyEventType;
|
|
62
56
|
positionChanged: EventTypeWithValue;
|
|
63
57
|
audioError: EventEmptyType; // to change
|
package/src/interfaces.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
BiquadFilterType,
|
|
6
6
|
ChannelCountMode,
|
|
7
7
|
ChannelInterpretation,
|
|
8
|
+
ProcessorMode,
|
|
8
9
|
} from './types';
|
|
9
10
|
import { AudioEventName, AudioEventCallback } from './events/types';
|
|
10
11
|
|
|
@@ -15,6 +16,7 @@ export interface IBaseAudioContext {
|
|
|
15
16
|
readonly currentTime: number;
|
|
16
17
|
|
|
17
18
|
createOscillator(): IOscillatorNode;
|
|
19
|
+
createCustomProcessor(identifier: string): ICustomProcessorNode;
|
|
18
20
|
createGain(): IGainNode;
|
|
19
21
|
createStereoPanner(): IStereoPannerNode;
|
|
20
22
|
createBiquadFilter: () => IBiquadFilterNode;
|
|
@@ -60,6 +62,11 @@ export interface IAudioNode {
|
|
|
60
62
|
disconnect: (destination?: IAudioNode | IAudioParam) => void;
|
|
61
63
|
}
|
|
62
64
|
|
|
65
|
+
export interface ICustomProcessorNode extends IAudioNode {
|
|
66
|
+
readonly customProcessor: IAudioParam;
|
|
67
|
+
processorMode: ProcessorMode;
|
|
68
|
+
}
|
|
69
|
+
|
|
63
70
|
export interface IGainNode extends IAudioNode {
|
|
64
71
|
readonly gain: IAudioParam;
|
|
65
72
|
}
|
|
@@ -92,6 +99,16 @@ export interface IAudioScheduledSourceNode extends IAudioNode {
|
|
|
92
99
|
onended: string;
|
|
93
100
|
}
|
|
94
101
|
|
|
102
|
+
export interface IAudioBufferBaseSourceNode extends IAudioScheduledSourceNode {
|
|
103
|
+
detune: IAudioParam;
|
|
104
|
+
playbackRate: IAudioParam;
|
|
105
|
+
|
|
106
|
+
// passing subscriptionId(uint_64 in cpp, string in js) to the cpp
|
|
107
|
+
onPositionChanged: string;
|
|
108
|
+
// set how often the onPositionChanged event is called
|
|
109
|
+
onPositionChangedInterval: number;
|
|
110
|
+
}
|
|
111
|
+
|
|
95
112
|
export interface IOscillatorNode extends IAudioScheduledSourceNode {
|
|
96
113
|
readonly frequency: IAudioParam;
|
|
97
114
|
readonly detune: IAudioParam;
|
|
@@ -100,39 +117,24 @@ export interface IOscillatorNode extends IAudioScheduledSourceNode {
|
|
|
100
117
|
setPeriodicWave(periodicWave: IPeriodicWave): void;
|
|
101
118
|
}
|
|
102
119
|
|
|
103
|
-
export interface IAudioBufferSourceNode extends
|
|
120
|
+
export interface IAudioBufferSourceNode extends IAudioBufferBaseSourceNode {
|
|
104
121
|
buffer: IAudioBuffer | null;
|
|
105
122
|
loop: boolean;
|
|
106
123
|
loopSkip: boolean;
|
|
107
124
|
loopStart: number;
|
|
108
125
|
loopEnd: number;
|
|
109
|
-
detune: IAudioParam;
|
|
110
|
-
playbackRate: IAudioParam;
|
|
111
126
|
|
|
112
127
|
start: (when?: number, offset?: number, duration?: number) => void;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
onPositionChangedInterval: number;
|
|
128
|
+
setBuffer: (
|
|
129
|
+
audioBufferSourceNode: IAudioBufferSourceNode,
|
|
130
|
+
audioBuffer: IAudioBuffer | null
|
|
131
|
+
) => void;
|
|
118
132
|
}
|
|
119
133
|
|
|
120
|
-
export interface IAudioBufferQueueSourceNode
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
enqueueBuffer: (
|
|
125
|
-
audioBuffer: IAudioBuffer,
|
|
126
|
-
bufferId: number,
|
|
127
|
-
isLastBuffer: boolean
|
|
128
|
-
) => void;
|
|
129
|
-
start: (when: number, offset?: number) => void;
|
|
134
|
+
export interface IAudioBufferQueueSourceNode
|
|
135
|
+
extends IAudioBufferBaseSourceNode {
|
|
136
|
+
enqueueBuffer: (audioBuffer: IAudioBuffer, isLastBuffer: boolean) => void;
|
|
130
137
|
pause: () => void;
|
|
131
|
-
|
|
132
|
-
// passing subscriptionId(uint_64 in cpp, string in js) to the cpp
|
|
133
|
-
onPositionChanged: string;
|
|
134
|
-
// set how often the onPositionChanged event is called
|
|
135
|
-
onPositionChangedInterval: number;
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
export interface IAudioBuffer {
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import AudioNode from './AudioNode';
|
|
2
|
+
import { EventEmptyType } from '../events/types';
|
|
2
3
|
import { RangeError, InvalidStateError } from '../errors';
|
|
3
4
|
|
|
4
5
|
export default class AudioScheduledSourceNode extends AudioNode {
|
|
@@ -36,11 +37,7 @@ export default class AudioScheduledSourceNode extends AudioNode {
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
// eslint-disable-next-line accessor-pairs
|
|
39
|
-
public set onended(callback: (
|
|
40
|
-
|
|
41
|
-
callback();
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
(this.node as globalThis.AudioScheduledSourceNode).onended = eventCallback;
|
|
40
|
+
public set onended(callback: (event: EventEmptyType) => void) {
|
|
41
|
+
(this.node as globalThis.AudioScheduledSourceNode).onended = callback;
|
|
45
42
|
}
|
|
46
43
|
}
|