react-native-audio-api 0.6.0-rc.4 → 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.
Files changed (206) hide show
  1. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +35 -2
  2. package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +4 -0
  3. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +31 -17
  4. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +1 -3
  5. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +56 -2
  6. package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +0 -12
  7. package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +35 -12
  8. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +30 -29
  9. package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +20 -22
  10. package/android/src/main/java/com/swmansion/audioapi/system/MediaReceiver.kt +19 -9
  11. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +30 -11
  12. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +53 -26
  13. package/android/src/main/java/com/swmansion/audioapi/system/VolumeChangeListener.kt +10 -5
  14. package/android/src/oldarch/NativeAudioAPIModuleSpec.java +39 -0
  15. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +20 -14
  16. package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +2 -3
  17. package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.h +24 -11
  18. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +1 -0
  19. package/common/cpp/audioapi/HostObjects/AudioRecorderHostObject.h +10 -89
  20. package/common/cpp/audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h +3 -24
  21. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +2 -2
  22. package/common/cpp/audioapi/HostObjects/OscillatorNodeHostObject.h +2 -3
  23. package/common/cpp/audioapi/core/AudioContext.cpp +4 -1
  24. package/common/cpp/audioapi/core/AudioContext.h +1 -1
  25. package/common/cpp/audioapi/core/AudioNode.cpp +31 -2
  26. package/common/cpp/audioapi/core/AudioNode.h +7 -1
  27. package/common/cpp/audioapi/core/AudioParam.cpp +84 -2
  28. package/common/cpp/audioapi/core/AudioParam.h +14 -1
  29. package/common/cpp/audioapi/core/BaseAudioContext.cpp +7 -1
  30. package/common/cpp/audioapi/core/BaseAudioContext.h +7 -1
  31. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +3 -2
  32. package/common/cpp/audioapi/core/OfflineAudioContext.h +1 -1
  33. package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +19 -56
  34. package/common/cpp/audioapi/core/analysis/AnalyserNode.h +3 -2
  35. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +28 -26
  36. package/common/cpp/audioapi/core/effects/GainNode.cpp +9 -9
  37. package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +5 -2
  38. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +56 -0
  39. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +13 -13
  40. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +14 -10
  41. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +1 -1
  42. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +7 -6
  43. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +5 -3
  44. package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +15 -10
  45. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +35 -1
  46. package/common/cpp/audioapi/core/utils/AudioNodeManager.h +15 -1
  47. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +108 -0
  48. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +62 -0
  49. package/common/cpp/audioapi/events/AudioEventHandlerRegistryHostObject.h +48 -0
  50. package/common/cpp/audioapi/jsi/JsiPromise.cpp +3 -4
  51. package/common/cpp/audioapi/utils/AudioArray.h +1 -1
  52. package/common/cpp/audioapi/utils/CircularAudioArray.cpp +94 -0
  53. package/common/cpp/audioapi/utils/CircularAudioArray.h +26 -0
  54. package/ios/audioapi/ios/AudioAPIModule.h +13 -0
  55. package/ios/audioapi/ios/AudioAPIModule.mm +115 -6
  56. package/ios/audioapi/ios/core/IOSAudioRecorder.h +3 -10
  57. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +15 -52
  58. package/ios/audioapi/ios/core/NativeAudioPlayer.m +2 -0
  59. package/ios/audioapi/ios/core/NativeAudioRecorder.m +7 -3
  60. package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.h +7 -0
  61. package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.mm +12 -0
  62. package/ios/audioapi/ios/system/AudioEngine.h +5 -0
  63. package/ios/audioapi/ios/system/AudioEngine.mm +7 -15
  64. package/ios/audioapi/ios/system/AudioSessionManager.h +3 -1
  65. package/ios/audioapi/ios/system/AudioSessionManager.mm +36 -17
  66. package/ios/audioapi/ios/system/LockScreenManager.h +3 -3
  67. package/ios/audioapi/ios/system/LockScreenManager.mm +36 -48
  68. package/ios/audioapi/ios/system/NotificationManager.h +3 -3
  69. package/ios/audioapi/ios/system/NotificationManager.mm +21 -29
  70. package/lib/commonjs/api.js +4 -4
  71. package/lib/commonjs/api.js.map +1 -1
  72. package/lib/commonjs/core/AudioBufferSourceNode.js +2 -2
  73. package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
  74. package/lib/commonjs/core/AudioNode.js +8 -2
  75. package/lib/commonjs/core/AudioNode.js.map +1 -1
  76. package/lib/commonjs/core/AudioParam.js +2 -1
  77. package/lib/commonjs/core/AudioParam.js.map +1 -1
  78. package/lib/commonjs/core/AudioRecorder.js +11 -28
  79. package/lib/commonjs/core/AudioRecorder.js.map +1 -1
  80. package/lib/commonjs/core/AudioScheduledSourceNode.js +4 -1
  81. package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
  82. package/lib/commonjs/core/BiquadFilterNode.js +4 -4
  83. package/lib/commonjs/core/BiquadFilterNode.js.map +1 -1
  84. package/lib/commonjs/core/GainNode.js +1 -1
  85. package/lib/commonjs/core/GainNode.js.map +1 -1
  86. package/lib/commonjs/core/OscillatorNode.js +2 -2
  87. package/lib/commonjs/core/OscillatorNode.js.map +1 -1
  88. package/lib/commonjs/core/StereoPannerNode.js +1 -1
  89. package/lib/commonjs/core/StereoPannerNode.js.map +1 -1
  90. package/lib/commonjs/events/AudioEventEmitter.js +22 -0
  91. package/lib/commonjs/events/AudioEventEmitter.js.map +1 -0
  92. package/lib/commonjs/events/AudioEventSubscription.js +20 -0
  93. package/lib/commonjs/events/AudioEventSubscription.js.map +1 -0
  94. package/lib/commonjs/events/index.js +21 -0
  95. package/lib/commonjs/events/index.js.map +1 -0
  96. package/lib/commonjs/events/types.js +6 -0
  97. package/lib/commonjs/events/types.js.map +1 -0
  98. package/lib/commonjs/hooks/useSytemVolume.js +1 -1
  99. package/lib/commonjs/hooks/useSytemVolume.js.map +1 -1
  100. package/lib/commonjs/specs/NativeAudioAPIModule.js +3 -3
  101. package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
  102. package/lib/commonjs/specs/index.js +2 -16
  103. package/lib/commonjs/specs/index.js.map +1 -1
  104. package/lib/commonjs/system/AudioManager.js +26 -26
  105. package/lib/commonjs/system/AudioManager.js.map +1 -1
  106. package/lib/module/api.js +2 -2
  107. package/lib/module/api.js.map +1 -1
  108. package/lib/module/core/AudioBufferSourceNode.js +2 -2
  109. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  110. package/lib/module/core/AudioNode.js +7 -2
  111. package/lib/module/core/AudioNode.js.map +1 -1
  112. package/lib/module/core/AudioParam.js +2 -1
  113. package/lib/module/core/AudioParam.js.map +1 -1
  114. package/lib/module/core/AudioRecorder.js +11 -28
  115. package/lib/module/core/AudioRecorder.js.map +1 -1
  116. package/lib/module/core/AudioScheduledSourceNode.js +4 -1
  117. package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
  118. package/lib/module/core/BiquadFilterNode.js +4 -4
  119. package/lib/module/core/BiquadFilterNode.js.map +1 -1
  120. package/lib/module/core/GainNode.js +1 -1
  121. package/lib/module/core/GainNode.js.map +1 -1
  122. package/lib/module/core/OscillatorNode.js +2 -2
  123. package/lib/module/core/OscillatorNode.js.map +1 -1
  124. package/lib/module/core/StereoPannerNode.js +1 -1
  125. package/lib/module/core/StereoPannerNode.js.map +1 -1
  126. package/lib/module/events/AudioEventEmitter.js +16 -0
  127. package/lib/module/events/AudioEventEmitter.js.map +1 -0
  128. package/lib/module/events/AudioEventSubscription.js +15 -0
  129. package/lib/module/events/AudioEventSubscription.js.map +1 -0
  130. package/lib/module/events/index.js +6 -0
  131. package/lib/module/events/index.js.map +1 -0
  132. package/lib/module/events/types.js +4 -0
  133. package/lib/module/events/types.js.map +1 -0
  134. package/lib/module/hooks/useSytemVolume.js +1 -1
  135. package/lib/module/hooks/useSytemVolume.js.map +1 -1
  136. package/lib/module/specs/NativeAudioAPIModule.js +3 -2
  137. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
  138. package/lib/module/specs/index.js +2 -3
  139. package/lib/module/specs/index.js.map +1 -1
  140. package/lib/module/system/AudioManager.js +27 -27
  141. package/lib/module/system/AudioManager.js.map +1 -1
  142. package/lib/typescript/api.d.ts +2 -1
  143. package/lib/typescript/api.d.ts.map +1 -1
  144. package/lib/typescript/core/AudioNode.d.ts +2 -1
  145. package/lib/typescript/core/AudioNode.d.ts.map +1 -1
  146. package/lib/typescript/core/AudioParam.d.ts +4 -2
  147. package/lib/typescript/core/AudioParam.d.ts.map +1 -1
  148. package/lib/typescript/core/AudioRecorder.d.ts +4 -14
  149. package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
  150. package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -1
  151. package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
  152. package/lib/typescript/events/AudioEventEmitter.d.ts +10 -0
  153. package/lib/typescript/events/AudioEventEmitter.d.ts.map +1 -0
  154. package/lib/typescript/events/AudioEventSubscription.d.ts +11 -0
  155. package/lib/typescript/events/AudioEventSubscription.d.ts.map +1 -0
  156. package/lib/typescript/events/index.d.ts +4 -0
  157. package/lib/typescript/events/index.d.ts.map +1 -0
  158. package/lib/typescript/events/types.d.ts +50 -0
  159. package/lib/typescript/events/types.d.ts.map +1 -0
  160. package/lib/typescript/hooks/useSytemVolume.d.ts.map +1 -1
  161. package/lib/typescript/interfaces.d.ts +10 -10
  162. package/lib/typescript/interfaces.d.ts.map +1 -1
  163. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +15 -3
  164. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
  165. package/lib/typescript/specs/index.d.ts +2 -3
  166. package/lib/typescript/specs/index.d.ts.map +1 -1
  167. package/lib/typescript/system/AudioManager.d.ts +8 -4
  168. package/lib/typescript/system/AudioManager.d.ts.map +1 -1
  169. package/lib/typescript/system/types.d.ts +1 -34
  170. package/lib/typescript/system/types.d.ts.map +1 -1
  171. package/lib/typescript/types.d.ts +0 -1
  172. package/lib/typescript/types.d.ts.map +1 -1
  173. package/package.json +3 -3
  174. package/src/api.ts +6 -3
  175. package/src/core/AudioBufferSourceNode.ts +2 -2
  176. package/src/core/AudioNode.ts +8 -3
  177. package/src/core/AudioParam.ts +5 -2
  178. package/src/core/AudioRecorder.ts +22 -62
  179. package/src/core/AudioScheduledSourceNode.ts +13 -2
  180. package/src/core/BiquadFilterNode.ts +4 -4
  181. package/src/core/GainNode.ts +1 -1
  182. package/src/core/OscillatorNode.ts +2 -2
  183. package/src/core/StereoPannerNode.ts +1 -1
  184. package/src/events/AudioEventEmitter.ts +29 -0
  185. package/src/events/AudioEventSubscription.ts +26 -0
  186. package/src/events/index.ts +4 -0
  187. package/src/events/types.ts +64 -0
  188. package/src/hooks/useSytemVolume.ts +2 -1
  189. package/src/interfaces.ts +19 -20
  190. package/src/specs/NativeAudioAPIModule.ts +23 -2
  191. package/src/specs/index.ts +2 -4
  192. package/src/system/AudioManager.ts +39 -38
  193. package/src/system/types.ts +1 -41
  194. package/src/types.ts +0 -8
  195. package/android/src/main/java/com/swmansion/audioapi/AudioManagerModule.kt +0 -64
  196. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionEventEmitter.kt +0 -88
  197. package/android/src/oldarch/NativeAudioManagerModuleSpec.java +0 -99
  198. package/ios/audioapi/ios/AudioManagerModule.h +0 -18
  199. package/ios/audioapi/ios/AudioManagerModule.mm +0 -93
  200. package/lib/commonjs/specs/NativeAudioManagerModule.js +0 -36
  201. package/lib/commonjs/specs/NativeAudioManagerModule.js.map +0 -1
  202. package/lib/module/specs/NativeAudioManagerModule.js +0 -33
  203. package/lib/module/specs/NativeAudioManagerModule.js.map +0 -1
  204. package/lib/typescript/specs/NativeAudioManagerModule.d.ts +0 -15
  205. package/lib/typescript/specs/NativeAudioManagerModule.d.ts.map +0 -1
  206. package/src/specs/NativeAudioManagerModule.ts +0 -45
@@ -1 +1 @@
1
- {"version":3,"file":"AudioScheduledSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioScheduledSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAC7D,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,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,EAElD;CACF"}
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,4 @@
1
+ import AudioEventEmitter from './AudioEventEmitter';
2
+ import AudioEventSubscription from './AudioEventSubscription';
3
+ export { AudioEventEmitter, AudioEventSubscription };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,WAetC"}
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, AudioRecorderStatus, ChannelInterpretation } from './types';
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: (node: IAudioNode) => void;
36
- disconnect: (node?: IAudioNode) => void;
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: (arg?: number) => void | null;
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: (callback: IAudioReadyCallback) => void;
117
- onError: (callback: IErrorCallback) => void;
118
- onStatusChange: (callback: IStatusChangeCallback) => void;
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,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,gBAAgB,IAAI,eAAe,CAAC;IACpC,UAAU,IAAI,SAAS,CAAC;IACxB,kBAAkB,IAAI,iBAAiB,CAAC;IACxC,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,sBAAsB,CAAC;IACzE,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,YAAY,CAAC;IAClB,kBAAkB,EAAE,CAClB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,oBAAoB,EAAE,OAAO,KAC1B,aAAa,CAAC;IACnB,cAAc,EAAE,MAAM,aAAa,CAAC;IACpC,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrE,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAU;IACzB,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,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IAEvB,oBAAoB,CAClB,cAAc,EAAE,YAAY,EAC5B,iBAAiB,EAAE,YAAY,EAC/B,mBAAmB,EAAE,YAAY,GAChC,IAAI,CAAC;CACT;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;CAAG;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,UAAU;IAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAgB,SAAQ,yBAAyB;IAChE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,IAAI,EAAE,cAAc,CAAC;IAErB,eAAe,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,sBAAuB,SAAQ,yBAAyB;IACvE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,WAAW,CAAC;IAE1B,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IAC9C,eAAe,CACb,WAAW,EAAE,YAAY,EACzB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,IAAI,CAAC;IACR,aAAa,CACX,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,IAAI,CAAC;CACT;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,4BAA4B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,eAAe,EAAE,CACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,KACjB,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;IACV,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;CAAG;AAEjC,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;IAEnB,qBAAqB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACrD,oBAAoB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAClD,sBAAsB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACtD,qBAAqB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG,CAClC,MAAM,EAAE,mBAAmB,EAC3B,cAAc,EAAE,mBAAmB,KAChC,IAAI,CAAC;AAEV,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,YAAY,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC3D"}
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 _default: Spec | null;
6
- export default _default;
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":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,UAAU,IAAK,SAAQ,WAAW;IAChC,OAAO,IAAI,OAAO,CAAC;CACpB;;AAED,wBAA+D"}
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
- import { AudioManagerModule, eventEmitter } from './NativeAudioManagerModule';
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":"AAEA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC"}
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,18 @@
1
- import { SessionOptions, LockScreenInfo, RemoteEventName, RemoteEventCallback, RemoteCommandName } from './types';
2
- import { EmitterSubscription } from 'react-native';
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
- enableRemoteCommand<Name extends RemoteCommandName>(name: Name): void;
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;
14
+ requestRecordingPermissions(): Promise<PermissionStatus>;
15
+ checkRecordingPermissions(): Promise<PermissionStatus>;
12
16
  }
13
17
  declare const _default: AudioManager;
14
18
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,cAAM,YAAY;IAChB,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,mBAAmB,CAAC,IAAI,SAAS,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAIrE,iBAAiB,CAAC,IAAI,SAAS,eAAe,EAC5C,IAAI,EAAE,IAAI,EACV,QAAQ,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,GACnC,mBAAmB,GAAG,IAAI;CAuB9B;;AAED,wBAAkC"}
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,39 +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;
24
+ export type PermissionStatus = 'Undetermined' | 'Denied' | 'Granted';
58
25
  export {};
59
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,UAAU,eAAe;CAAG;AAE5B,UAAU,sBAAsB;IAC9B,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,cAAc;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,eAAe,CAAC;IACpC,SAAS,EAAE,eAAe,CAAC;IAC3B,aAAa,EAAE,eAAe,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,eAAe,CAAC;IAC9B,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,eAAe,CAAC;IAC9B,sBAAsB,EAAE,eAAe,CAAC;CACzC;AAED,UAAU,YAAY;IACpB,YAAY,EAAE,sBAAsB,CAAC;IACrC,YAAY,EAAE,uBAAuB,CAAC;IACtC,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC;AACrD,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"}
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;AAED,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,cAAc,GACd,OAAO,GACP,SAAS,GACT,UAAU,GACV,OAAO,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,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-rc.4",
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 --dry-run -Werror",
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/ \\( -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" -o -iname \"*.cpp\" \\) -not -path \"ios/audioapi/ios/*\" | xargs clang-format -i",
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/NativeAudioAPIModule';
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 {
@@ -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
- 'The AudioNodes are from different BaseAudioContexts'
29
+ 'Source and destination are from different BaseAudioContexts'
29
30
  );
30
31
  }
31
32
 
32
- this.node.connect(destination.node);
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
  }
@@ -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
- private readonly audioParam: IAudioParam;
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 {
@@ -1,56 +1,14 @@
1
- import {
2
- IAudioRecorder,
3
- IErrorCallback,
4
- IAudioReadyCallback,
5
- IStatusChangeCallback,
6
- IAudioBuffer,
7
- } from '../interfaces';
8
- import { AudioRecorderStatus, AudioRecorderOptions } from '../types';
1
+ import { IAudioRecorder } from '../interfaces';
2
+ import { AudioRecorderOptions } from '../types';
9
3
  import AudioBuffer from './AudioBuffer';
10
-
11
- export type AudioReadyCallback = (
12
- buffer: AudioBuffer,
13
- numFrames: number,
14
- when: number
15
- ) => void;
16
-
17
- export type ErrorCallback = (error: Error) => void;
18
-
19
- export type StatusChangeCallback = (
20
- status: AudioRecorderStatus,
21
- previousStatus: AudioRecorderStatus
22
- ) => void;
4
+ import { OnAudioReadyEventType } from '../events/types';
5
+ import { AudioEventEmitter } from '../events';
23
6
 
24
7
  export default class AudioRecorder {
25
8
  protected readonly recorder: IAudioRecorder;
26
- private onAudioReadyCallback: AudioReadyCallback | null = null;
27
- private onErrorCallback: ErrorCallback | null = null;
28
- private onStatusChangeCallback: StatusChangeCallback | null = null;
29
-
30
- private onAudioReadyInternal: IAudioReadyCallback = (
31
- buffer: IAudioBuffer,
32
- numFrames: number,
33
- when: number
34
- ) => {
35
- if (this.onAudioReadyCallback) {
36
- this.onAudioReadyCallback(new AudioBuffer(buffer), numFrames, when);
37
- }
38
- };
39
-
40
- private onErrorInternal: IErrorCallback = (error: Error) => {
41
- if (this.onErrorCallback) {
42
- this.onErrorCallback(error);
43
- }
44
- };
45
-
46
- private onStatusChangeInternal: IStatusChangeCallback = (
47
- status: AudioRecorderStatus,
48
- previousStatus: AudioRecorderStatus
49
- ) => {
50
- if (this.onStatusChangeCallback) {
51
- this.onStatusChangeCallback(status, previousStatus);
52
- }
53
- };
9
+ private readonly audioEventEmitter = new AudioEventEmitter(
10
+ global.AudioEventEmitter
11
+ );
54
12
 
55
13
  constructor(options: AudioRecorderOptions) {
56
14
  this.recorder = global.createAudioRecorder(options);
@@ -64,18 +22,20 @@ export default class AudioRecorder {
64
22
  this.recorder.stop();
65
23
  }
66
24
 
67
- public onAudioReady(callback: AudioReadyCallback): void {
68
- this.onAudioReadyCallback = callback;
69
- this.recorder.onAudioReady(this.onAudioReadyInternal);
70
- }
71
-
72
- public onError(callback: ErrorCallback): void {
73
- this.onErrorCallback = callback;
74
- this.recorder.onError(this.onErrorInternal);
75
- }
76
-
77
- public onStatusChange(callback: StatusChangeCallback): void {
78
- this.onStatusChangeCallback = callback;
79
- this.recorder.onStatusChange(this.onStatusChangeInternal);
25
+ public onAudioReady(callback: (event: OnAudioReadyEventType) => void): void {
26
+ const onAudioReadyCallback = (event: OnAudioReadyEventType) => {
27
+ callback({
28
+ buffer: new AudioBuffer(event.buffer),
29
+ numFrames: event.numFrames,
30
+ when: event.when,
31
+ });
32
+ };
33
+
34
+ const subscription = this.audioEventEmitter.addAudioEventListener(
35
+ 'audioReady',
36
+ onAudioReadyCallback
37
+ );
38
+
39
+ this.recorder.onAudioReady = subscription.subscriptionId;
80
40
  }
81
41
  }
@@ -1,9 +1,14 @@
1
1
  import { IAudioScheduledSourceNode } from '../interfaces';
2
2
  import AudioNode from './AudioNode';
3
3
  import { InvalidStateError, RangeError } from '../errors';
4
+ import { EventTypeWithValue } from '../events/types';
5
+ import { AudioEventEmitter } from '../events';
4
6
 
5
7
  export default class AudioScheduledSourceNode extends AudioNode {
6
8
  protected hasBeenStarted: boolean = false;
9
+ private readonly audioEventEmitter = new AudioEventEmitter(
10
+ global.AudioEventEmitter
11
+ );
7
12
 
8
13
  public start(when: number = 0): void {
9
14
  if (when < 0) {
@@ -37,7 +42,13 @@ export default class AudioScheduledSourceNode extends AudioNode {
37
42
  }
38
43
 
39
44
  // eslint-disable-next-line accessor-pairs
40
- public set onended(callback: (arg?: number) => void) {
41
- (this.node as IAudioScheduledSourceNode).onended = callback;
45
+ public set onended(callback: (event: EventTypeWithValue) => void) {
46
+ const subscription = this.audioEventEmitter.addAudioEventListener(
47
+ 'ended',
48
+ callback
49
+ );
50
+
51
+ (this.node as IAudioScheduledSourceNode).onended =
52
+ subscription.subscriptionId;
42
53
  }
43
54
  }
@@ -13,10 +13,10 @@ export default class BiquadFilterNode extends AudioNode {
13
13
 
14
14
  constructor(context: BaseAudioContext, biquadFilter: IBiquadFilterNode) {
15
15
  super(context, biquadFilter);
16
- this.frequency = new AudioParam(biquadFilter.frequency);
17
- this.detune = new AudioParam(biquadFilter.detune);
18
- this.Q = new AudioParam(biquadFilter.Q);
19
- this.gain = new AudioParam(biquadFilter.gain);
16
+ this.frequency = new AudioParam(biquadFilter.frequency, context);
17
+ this.detune = new AudioParam(biquadFilter.detune, context);
18
+ this.Q = new AudioParam(biquadFilter.Q, context);
19
+ this.gain = new AudioParam(biquadFilter.gain, context);
20
20
  }
21
21
 
22
22
  public get type(): BiquadFilterType {
@@ -8,6 +8,6 @@ export default class GainNode extends AudioNode {
8
8
 
9
9
  constructor(context: BaseAudioContext, gain: IGainNode) {
10
10
  super(context, gain);
11
- this.gain = new AudioParam(gain.gain);
11
+ this.gain = new AudioParam(gain.gain, context);
12
12
  }
13
13
  }
@@ -12,8 +12,8 @@ export default class OscillatorNode extends AudioScheduledSourceNode {
12
12
 
13
13
  constructor(context: BaseAudioContext, node: IOscillatorNode) {
14
14
  super(context, node);
15
- this.frequency = new AudioParam(node.frequency);
16
- this.detune = new AudioParam(node.detune);
15
+ this.frequency = new AudioParam(node.frequency, context);
16
+ this.detune = new AudioParam(node.detune, context);
17
17
  this.type = node.type;
18
18
  }
19
19
 
@@ -8,6 +8,6 @@ export default class StereoPannerNode extends AudioNode {
8
8
 
9
9
  constructor(context: BaseAudioContext, pan: IStereoPannerNode) {
10
10
  super(context, pan);
11
- this.pan = new AudioParam(pan.pan);
11
+ this.pan = new AudioParam(pan.pan, context);
12
12
  }
13
13
  }