react-native-audio-api 0.10.0-nightly-2d11b56-20251021 → 0.10.0-nightly-325e87a-20251023

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 (48) hide show
  1. package/RNAudioAPI.podspec +3 -0
  2. package/android/build.gradle +26 -2
  3. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +5 -0
  4. package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +1 -0
  5. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +4 -2
  6. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +29 -1
  7. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +20 -0
  8. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +1 -1
  9. package/common/cpp/audioapi/core/AudioParam.cpp +2 -2
  10. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +69 -32
  11. package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +37 -1
  12. package/common/cpp/audioapi/core/utils/Constants.h +2 -1
  13. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +0 -10
  14. package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +2 -3
  15. package/common/cpp/test/CMakeLists.txt +3 -0
  16. package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +389 -0
  17. package/common/cpp/test/src/biquad/BiquadFilterChromium.h +64 -0
  18. package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +284 -0
  19. package/common/cpp/test/src/biquad/BiquadFilterTest.h +40 -0
  20. package/ios/audioapi/ios/AudioAPIModule.h +2 -1
  21. package/ios/audioapi/ios/AudioAPIModule.mm +2 -0
  22. package/ios/audioapi/ios/core/IOSAudioRecorder.h +1 -2
  23. package/ios/audioapi/ios/system/AudioSessionManager.mm +9 -0
  24. package/lib/commonjs/core/AudioContext.js +1 -1
  25. package/lib/commonjs/core/AudioContext.js.map +1 -1
  26. package/lib/commonjs/core/BaseAudioContext.js +16 -25
  27. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  28. package/lib/commonjs/core/OfflineAudioContext.js +1 -1
  29. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  30. package/lib/commonjs/utils/index.js +19 -4
  31. package/lib/commonjs/utils/index.js.map +1 -1
  32. package/lib/module/core/AudioContext.js +2 -2
  33. package/lib/module/core/AudioContext.js.map +1 -1
  34. package/lib/module/core/BaseAudioContext.js +17 -26
  35. package/lib/module/core/BaseAudioContext.js.map +1 -1
  36. package/lib/module/core/OfflineAudioContext.js +2 -2
  37. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  38. package/lib/module/utils/index.js +15 -1
  39. package/lib/module/utils/index.js.map +1 -1
  40. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  41. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  42. package/lib/typescript/utils/index.d.ts +4 -1
  43. package/lib/typescript/utils/index.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/core/AudioContext.ts +3 -2
  46. package/src/core/BaseAudioContext.ts +44 -60
  47. package/src/core/OfflineAudioContext.ts +2 -2
  48. package/src/utils/index.ts +22 -1
@@ -0,0 +1,284 @@
1
+ #include <test/src/biquad/BiquadFilterChromium.h>
2
+ #include <test/src/biquad/BiquadFilterTest.h>
3
+
4
+ namespace audioapi {
5
+
6
+ void BiquadFilterTest::expectCoefficientsNear(
7
+ const std::shared_ptr<BiquadFilterNode> &biquadNode,
8
+ const BiquadCoefficients &expected) {
9
+ EXPECT_NEAR(biquadNode->b0_, expected.b0, tolerance);
10
+ EXPECT_NEAR(biquadNode->b1_, expected.b1, tolerance);
11
+ EXPECT_NEAR(biquadNode->b2_, expected.b2, tolerance);
12
+ EXPECT_NEAR(biquadNode->a1_, expected.a1, tolerance);
13
+ EXPECT_NEAR(biquadNode->a2_, expected.a2, tolerance);
14
+ }
15
+
16
+ void BiquadFilterTest::testLowpass(float frequency, float Q) {
17
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
18
+ float normalizedFrequency = frequency / nyquistFrequency;
19
+
20
+ node->setLowpassCoefficients(normalizedFrequency, Q);
21
+ expectCoefficientsNear(
22
+ node, calculateLowpassCoefficients(normalizedFrequency, Q));
23
+ }
24
+
25
+ void BiquadFilterTest::testHighpass(float frequency, float Q) {
26
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
27
+ float normalizedFrequency = frequency / nyquistFrequency;
28
+
29
+ node->setHighpassCoefficients(normalizedFrequency, Q);
30
+ expectCoefficientsNear(
31
+ node, calculateHighpassCoefficients(normalizedFrequency, Q));
32
+ }
33
+
34
+ void BiquadFilterTest::testBandpass(float frequency, float Q) {
35
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
36
+ float normalizedFrequency = frequency / nyquistFrequency;
37
+
38
+ node->setBandpassCoefficients(normalizedFrequency, Q);
39
+ expectCoefficientsNear(
40
+ node, calculateBandpassCoefficients(normalizedFrequency, Q));
41
+ }
42
+
43
+ void BiquadFilterTest::testNotch(float frequency, float Q) {
44
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
45
+ float normalizedFrequency = frequency / nyquistFrequency;
46
+
47
+ node->setNotchCoefficients(normalizedFrequency, Q);
48
+ expectCoefficientsNear(
49
+ node, calculateNotchCoefficients(normalizedFrequency, Q));
50
+ }
51
+
52
+ void BiquadFilterTest::testAllpass(float frequency, float Q) {
53
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
54
+ float normalizedFrequency = frequency / nyquistFrequency;
55
+
56
+ node->setAllpassCoefficients(normalizedFrequency, Q);
57
+ expectCoefficientsNear(
58
+ node, calculateAllpassCoefficients(normalizedFrequency, Q));
59
+ }
60
+
61
+ void BiquadFilterTest::testPeaking(float frequency, float Q, float gain) {
62
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
63
+ float normalizedFrequency = frequency / nyquistFrequency;
64
+
65
+ node->setPeakingCoefficients(normalizedFrequency, Q, gain);
66
+ expectCoefficientsNear(
67
+ node, calculatePeakingCoefficients(normalizedFrequency, Q, gain));
68
+ }
69
+
70
+ void BiquadFilterTest::testLowshelf(float frequency, float gain) {
71
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
72
+ float normalizedFrequency = frequency / nyquistFrequency;
73
+
74
+ node->setLowshelfCoefficients(normalizedFrequency, gain);
75
+ expectCoefficientsNear(
76
+ node, calculateLowshelfCoefficients(normalizedFrequency, gain));
77
+ }
78
+
79
+ void BiquadFilterTest::testHighshelf(float frequency, float gain) {
80
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
81
+ float normalizedFrequency = frequency / nyquistFrequency;
82
+
83
+ node->setHighshelfCoefficients(normalizedFrequency, gain);
84
+ expectCoefficientsNear(
85
+ node, calculateHighshelfCoefficients(normalizedFrequency, gain));
86
+ }
87
+
88
+ INSTANTIATE_TEST_SUITE_P(
89
+ Frequencies,
90
+ BiquadFilterFrequencyTest,
91
+ ::testing::Values(
92
+ 0.0f, // 0 Hz - the filter should block all input signal
93
+ 10.0f, // very low frequency
94
+ 350.0f, // default
95
+ nyquistFrequency - 0.0001f, // frequency near Nyquist
96
+ nyquistFrequency)); // maximal frequency
97
+
98
+ INSTANTIATE_TEST_SUITE_P(
99
+ QEdgeCases,
100
+ BiquadFilterQTestLowpassHighpass,
101
+ ::testing::Values(
102
+ -770.63678f, // min value for lowpass and highpass
103
+ 0.0f, // default
104
+ 770.63678f)); // max value for lowpass and highpass
105
+
106
+ INSTANTIATE_TEST_SUITE_P(
107
+ QEdgeCases,
108
+ BiquadFilterQTestRestTypes, // bandpass, notch, allpass, peaking
109
+ ::testing::Values(
110
+ 0.0f, // default and min value
111
+ MOST_POSITIVE_SINGLE_FLOAT));
112
+
113
+ INSTANTIATE_TEST_SUITE_P(
114
+ GainEdgeCases,
115
+ BiquadFilterGainTest,
116
+ ::testing::Values(
117
+ -40.0f,
118
+ 0.0f, // default
119
+ 40.0f));
120
+
121
+ TEST_P(BiquadFilterFrequencyTest, SetLowpassCoefficients) {
122
+ float frequency = GetParam();
123
+ float Q = 1.0f;
124
+ testLowpass(frequency, Q);
125
+ }
126
+
127
+ TEST_P(BiquadFilterFrequencyTest, SetHighpassCoefficients) {
128
+ float frequency = GetParam();
129
+ float Q = 1.0f;
130
+ testHighpass(frequency, Q);
131
+ }
132
+
133
+ TEST_P(BiquadFilterFrequencyTest, SetBandpassCoefficients) {
134
+ float frequency = GetParam();
135
+ float Q = 1.0f;
136
+ testBandpass(frequency, Q);
137
+ }
138
+
139
+ TEST_P(BiquadFilterFrequencyTest, SetNotchCoefficients) {
140
+ float frequency = GetParam();
141
+ float Q = 1.0f;
142
+ testNotch(frequency, Q);
143
+ }
144
+
145
+ TEST_P(BiquadFilterFrequencyTest, SetAllpassCoefficients) {
146
+ float frequency = GetParam();
147
+ float Q = 1.0f;
148
+ testAllpass(frequency, Q);
149
+ }
150
+
151
+ TEST_P(BiquadFilterFrequencyTest, SetPeakingCoefficients) {
152
+ float frequency = GetParam();
153
+ float Q = 1.0f;
154
+ float gain = 2.0f;
155
+ testPeaking(frequency, Q, gain);
156
+ }
157
+
158
+ TEST_P(BiquadFilterFrequencyTest, SetLowshelfCoefficients) {
159
+ float frequency = GetParam();
160
+ float gain = 2.0f;
161
+ testLowshelf(frequency, gain);
162
+ }
163
+
164
+ TEST_P(BiquadFilterFrequencyTest, SetHighshelfCoefficients) {
165
+ float frequency = GetParam();
166
+ float gain = 2.0f;
167
+ testHighshelf(frequency, gain);
168
+ }
169
+
170
+ TEST_P(BiquadFilterQTestLowpassHighpass, SetLowpassCoefficients) {
171
+ float frequency = 1000.0f;
172
+ float Q = GetParam();
173
+ testLowpass(frequency, Q);
174
+ }
175
+
176
+ TEST_P(BiquadFilterQTestLowpassHighpass, SetHighpassCoefficients) {
177
+ float frequency = 1000.0f;
178
+ float Q = GetParam();
179
+ testHighpass(frequency, Q);
180
+ }
181
+
182
+ TEST_P(BiquadFilterQTestRestTypes, SetBandpassCoefficients) {
183
+ float frequency = 1000.0f;
184
+ float Q = GetParam();
185
+ testBandpass(frequency, Q);
186
+ }
187
+
188
+ TEST_P(BiquadFilterQTestRestTypes, SetNotchCoefficients) {
189
+ float frequency = 1000.0f;
190
+ float Q = GetParam();
191
+ testNotch(frequency, Q);
192
+ }
193
+
194
+ TEST_P(BiquadFilterQTestRestTypes, SetAllpassCoefficients) {
195
+ float frequency = 1000.0f;
196
+ float Q = GetParam();
197
+ testAllpass(frequency, Q);
198
+ }
199
+
200
+ TEST_P(BiquadFilterQTestRestTypes, SetPeakingCoefficients) {
201
+ float frequency = 1000.0f;
202
+ float Q = GetParam();
203
+ float gain = 2.0f;
204
+ testPeaking(frequency, Q, gain);
205
+ }
206
+
207
+ TEST_P(BiquadFilterGainTest, SetPeakingCoefficients) {
208
+ float frequency = 1000.0f;
209
+ float Q = 1.0f;
210
+ float gain = GetParam();
211
+ testPeaking(frequency, Q, gain);
212
+ }
213
+
214
+ TEST_P(BiquadFilterGainTest, SetLowshelfCoefficients) {
215
+ float frequency = 1000.0f;
216
+ float gain = GetParam();
217
+ testLowshelf(frequency, gain);
218
+ }
219
+
220
+ TEST_P(BiquadFilterGainTest, SetHighshelfCoefficients) {
221
+ float frequency = 1000.0f;
222
+ float gain = GetParam();
223
+ testHighshelf(frequency, gain);
224
+ }
225
+
226
+ TEST_F(BiquadFilterTest, GetFrequencyResponse) {
227
+ auto node = std::make_shared<BiquadFilterNode>(context.get());
228
+
229
+ float frequency = 1000.0f;
230
+ float Q = 1.0f;
231
+ float normalizedFrequency = frequency / nyquistFrequency;
232
+
233
+ node->setLowpassCoefficients(normalizedFrequency, Q);
234
+ auto coeffs = calculateLowpassCoefficients(normalizedFrequency, Q);
235
+
236
+ std::vector<float> TestFrequencies = {
237
+ -0.0001f,
238
+ 0.0f,
239
+ 0.0001f,
240
+ 0.25f * nyquistFrequency,
241
+ 0.5f * nyquistFrequency,
242
+ 0.75f * nyquistFrequency,
243
+ nyquistFrequency - 0.0001f,
244
+ nyquistFrequency,
245
+ nyquistFrequency + 0.0001f};
246
+
247
+ std::vector<float> magResponseNode(TestFrequencies.size());
248
+ std::vector<float> phaseResponseNode(TestFrequencies.size());
249
+ std::vector<float> magResponseExpected(TestFrequencies.size());
250
+ std::vector<float> phaseResponseExpected(TestFrequencies.size());
251
+
252
+ node->getFrequencyResponse(
253
+ TestFrequencies.data(),
254
+ magResponseNode.data(),
255
+ phaseResponseNode.data(),
256
+ TestFrequencies.size());
257
+ getFrequencyResponse(
258
+ coeffs,
259
+ TestFrequencies,
260
+ magResponseExpected,
261
+ phaseResponseExpected,
262
+ nyquistFrequency);
263
+
264
+ for (size_t i = 0; i < TestFrequencies.size(); ++i) {
265
+ float f = TestFrequencies[i];
266
+ if (std::isnan(magResponseExpected[i])) {
267
+ EXPECT_TRUE(std::isnan(magResponseNode[i]))
268
+ << "Expected NaN at frequency " << f;
269
+ } else {
270
+ EXPECT_NEAR(magResponseNode[i], magResponseExpected[i], tolerance)
271
+ << "Magnitude mismatch at " << f << " Hz";
272
+ }
273
+
274
+ if (std::isnan(phaseResponseExpected[i])) {
275
+ EXPECT_TRUE(std::isnan(phaseResponseNode[i]))
276
+ << "Expected NaN at frequency " << f;
277
+ } else {
278
+ EXPECT_NEAR(phaseResponseNode[i], phaseResponseExpected[i], tolerance)
279
+ << "Phase mismatch at " << f << " Hz";
280
+ }
281
+ }
282
+ }
283
+
284
+ } // namespace audioapi
@@ -0,0 +1,40 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/core/OfflineAudioContext.h>
4
+ #include <audioapi/core/effects/BiquadFilterNode.h>
5
+ #include <audioapi/core/utils/worklets/SafeIncludes.h>
6
+ #include <gtest/gtest.h>
7
+ #include <test/src/MockAudioEventHandlerRegistry.h>
8
+ #include <memory>
9
+
10
+ static constexpr int sampleRate = 44100;
11
+ static constexpr float nyquistFrequency = sampleRate / 2.0f;
12
+ static constexpr float tolerance = 0.0001f;
13
+
14
+ namespace audioapi {
15
+ class BiquadFilterTest : public ::testing::Test {
16
+ protected:
17
+ std::shared_ptr<IAudioEventHandlerRegistry> eventRegistry;
18
+ std::unique_ptr<OfflineAudioContext> context;
19
+
20
+ void SetUp() override {
21
+ eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
22
+ context = std::make_unique<OfflineAudioContext>(2, 5 * sampleRate, sampleRate, eventRegistry, RuntimeRegistry{});
23
+ }
24
+
25
+ void expectCoefficientsNear(const std::shared_ptr<BiquadFilterNode> &node, const BiquadCoefficients &expected);
26
+ void testLowpass(float frequency, float Q);
27
+ void testHighpass(float frequency, float Q);
28
+ void testBandpass(float frequency, float Q);
29
+ void testNotch(float frequency, float Q);
30
+ void testAllpass(float frequency, float Q);
31
+ void testPeaking(float frequency, float Q, float gain);
32
+ void testLowshelf(float frequency, float gain);
33
+ void testHighshelf(float frequency, float gain);
34
+ };
35
+
36
+ class BiquadFilterQTestLowpassHighpass : public BiquadFilterTest, public ::testing::WithParamInterface<float> {};
37
+ class BiquadFilterQTestRestTypes : public BiquadFilterTest, public ::testing::WithParamInterface<float> {};
38
+ class BiquadFilterFrequencyTest : public BiquadFilterTest, public ::testing::WithParamInterface<float> {};
39
+ class BiquadFilterGainTest : public BiquadFilterTest, public ::testing::WithParamInterface<float> {};
40
+ } // namespace audioapi
@@ -1,5 +1,6 @@
1
1
  #ifdef RCT_NEW_ARCH_ENABLED
2
2
  #import <React/RCTCallInvokerModule.h>
3
+ #import <React/RCTInvalidating.h>
3
4
  #import <rnaudioapi/rnaudioapi.h>
4
5
  #else // RCT_NEW_ARCH_ENABLED
5
6
  #import <React/RCTBridgeModule.h>
@@ -14,7 +15,7 @@
14
15
 
15
16
  @interface AudioAPIModule : RCTEventEmitter
16
17
  #ifdef RCT_NEW_ARCH_ENABLED
17
- <NativeAudioAPIModuleSpec, RCTCallInvokerModule>
18
+ <NativeAudioAPIModuleSpec, RCTCallInvokerModule, RCTInvalidating>
18
19
  #else
19
20
  <RCTBridgeModule>
20
21
  #endif // RCT_NEW_ARCH_ENABLED
@@ -54,6 +54,8 @@ RCT_EXPORT_MODULE(AudioAPIModule);
54
54
 
55
55
  _eventHandler = nullptr;
56
56
 
57
+ audioapi::AudioAPIModuleInstaller::closeAllContexts();
58
+
57
59
  [super invalidate];
58
60
  }
59
61
 
@@ -18,8 +18,7 @@ class IOSAudioRecorder : public AudioRecorder {
18
18
  IOSAudioRecorder(
19
19
  float sampleRate,
20
20
  int bufferLength,
21
- const std::shared_ptr<AudioEventHandlerRegistry>
22
- &audioEventHandlerRegistry);
21
+ const std::shared_ptr<AudioEventHandlerRegistry> &audioEventHandlerRegistry);
23
22
 
24
23
  ~IOSAudioRecorder() override;
25
24
 
@@ -213,6 +213,15 @@
213
213
 
214
214
  - (void)requestRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
215
215
  {
216
+ id value = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSMicrophoneUsageDescription"];
217
+ // if there is no entry NSMicrophoneUsageDescription calling requestRecordPermission will quit an app
218
+ if (value == nil) {
219
+ reject(
220
+ nil,
221
+ @"There is no NSMicrophoneUsageDescription entry in info.plist file. App cannot access microphone without it.",
222
+ nil);
223
+ return;
224
+ }
216
225
  if (@available(iOS 17, *)) {
217
226
  [AVAudioSession.sharedInstance requestRecordPermission:^(BOOL granted) {
218
227
  if (granted) {
@@ -15,7 +15,7 @@ class AudioContext extends _BaseAudioContext.default {
15
15
  throw new _errors.NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
16
16
  }
17
17
  let audioRuntime = null;
18
- if (_utils.isWorkletsAvailable) {
18
+ if (_utils.isWorkletsVersionSupported) {
19
19
  audioRuntime = _utils.workletsModule.createWorkletRuntime('AudioWorkletRuntime');
20
20
  }
21
21
  super(global.createAudioContext(options?.sampleRate || _system.default.getDevicePreferredSampleRate(), options?.initSuspended || false, audioRuntime));
@@ -1 +1 @@
1
- {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_system","_errors","_utils","e","__esModule","default","AudioContext","BaseAudioContext","constructor","options","sampleRate","NotSupportedError","audioRuntime","isWorkletsAvailable","workletsModule","createWorkletRuntime","global","createAudioContext","AudioManager","getDevicePreferredSampleRate","initSuspended","close","context","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAA+D,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAMG,YAAY,SAASC,yBAAgB,CAAC;EACzDC,WAAWA,CAACC,OAA6B,EAAE;IACzC,IACEA,OAAO,IACPA,OAAO,CAACC,UAAU,KACjBD,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EACzD;MACA,MAAM,IAAIC,yBAAiB,CACzB,6CAA6CF,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IACA,IAAIE,YAAY,GAAG,IAAI;IACvB,IAAIC,0BAAmB,EAAE;MACvBD,YAAY,GAAGE,qBAAc,CAACC,oBAAoB,CAAC,qBAAqB,CAAC;IAC3E;IAEA,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBR,OAAO,EAAEC,UAAU,IAAIQ,eAAY,CAACC,4BAA4B,CAAC,CAAC,EAClEV,OAAO,EAAEW,aAAa,IAAI,KAAK,EAC/BR,YACF,CACF,CAAC;EACH;EAEA,MAAMS,KAAKA,CAAA,EAAkB;IAC3B,OAAQ,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAChD;EAEA,MAAME,MAAMA,CAAA,EAAqB;IAC/B,OAAQ,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EACjD;EAEA,MAAMC,OAAOA,CAAA,EAAqB;IAChC,OAAQ,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EAClD;AACF;AAACC,OAAA,CAAApB,OAAA,GAAAC,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_system","_errors","_utils","e","__esModule","default","AudioContext","BaseAudioContext","constructor","options","sampleRate","NotSupportedError","audioRuntime","isWorkletsVersionSupported","workletsModule","createWorkletRuntime","global","createAudioContext","AudioManager","getDevicePreferredSampleRate","initSuspended","close","context","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAsE,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvD,MAAMG,YAAY,SAASC,yBAAgB,CAAC;EACzDC,WAAWA,CAACC,OAA6B,EAAE;IACzC,IACEA,OAAO,IACPA,OAAO,CAACC,UAAU,KACjBD,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EACzD;MACA,MAAM,IAAIC,yBAAiB,CACzB,6CAA6CF,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IACA,IAAIE,YAAY,GAAG,IAAI;IAEvB,IAAIC,iCAA0B,EAAE;MAC9BD,YAAY,GAAGE,qBAAc,CAACC,oBAAoB,CAAC,qBAAqB,CAAC;IAC3E;IAEA,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBR,OAAO,EAAEC,UAAU,IAAIQ,eAAY,CAACC,4BAA4B,CAAC,CAAC,EAClEV,OAAO,EAAEW,aAAa,IAAI,KAAK,EAC/BR,YACF,CACF,CAAC;EACH;EAEA,MAAMS,KAAKA,CAAA,EAAkB;IAC3B,OAAQ,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAChD;EAEA,MAAME,MAAMA,CAAA,EAAqB;IAC/B,OAAQ,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EACjD;EAEA,MAAMC,OAAOA,CAAA,EAAqB;IAChC,OAAQ,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EAClD;AACF;AAACC,OAAA,CAAApB,OAAA,GAAAC,YAAA","ignoreList":[]}
@@ -52,37 +52,28 @@ class BaseAudioContext {
52
52
  if (bufferLength < 1) {
53
53
  throw new _errors.NotSupportedError(`The buffer length provided (${bufferLength}) can not be less than 1`);
54
54
  }
55
- if (_utils.isWorkletsAvailable) {
56
- const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
57
- 'worklet';
55
+ (0, _utils.assertWorkletsEnabled)();
56
+ const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
57
+ 'worklet';
58
58
 
59
- const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
60
- callback(floatAudioData, channelCount);
61
- });
62
- return new _WorkletNode.default(this, this.context.createWorkletNode(shareableWorklet, workletRuntime === 'UIRuntime', bufferLength, inputChannelCount));
63
- }
64
- /// User does not have worklets as a dependency so he cannot use the worklet API.
65
- throw new Error('[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.');
59
+ const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
60
+ callback(floatAudioData, channelCount);
61
+ });
62
+ return new _WorkletNode.default(this, this.context.createWorkletNode(shareableWorklet, workletRuntime === 'UIRuntime', bufferLength, inputChannelCount));
66
63
  }
67
64
  createWorkletProcessingNode(callback, workletRuntime = 'AudioRuntime') {
68
- if (_utils.isWorkletsAvailable) {
69
- const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
70
- 'worklet';
65
+ (0, _utils.assertWorkletsEnabled)();
66
+ const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
67
+ 'worklet';
71
68
 
72
- const inputData = inputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
73
- const outputData = outputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
74
- callback(inputData, outputData, framesToProcess, currentTime);
75
- });
76
- return new _WorkletProcessingNode.default(this, this.context.createWorkletProcessingNode(shareableWorklet, workletRuntime === 'UIRuntime'));
77
- }
78
- /// User does not have worklets as a dependency so he cannot use the worklet API.
79
- throw new Error('[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.');
69
+ const inputData = inputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
70
+ const outputData = outputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
71
+ callback(inputData, outputData, framesToProcess, currentTime);
72
+ });
73
+ return new _WorkletProcessingNode.default(this, this.context.createWorkletProcessingNode(shareableWorklet, workletRuntime === 'UIRuntime'));
80
74
  }
81
75
  createWorkletSourceNode(callback, workletRuntime = 'AudioRuntime') {
82
- if (!_utils.isWorkletsAvailable) {
83
- /// User does not have worklets as a dependency so he cannot use the worklet API.
84
- throw new Error('[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.');
85
- }
76
+ (0, _utils.assertWorkletsEnabled)();
86
77
  const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((audioBuffers, framesToProcess, currentTime, startOffset) => {
87
78
  'worklet';
88
79
 
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_AudioDecoder","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","ArrayBuffer","TypeError","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","isWorkletsAvailable","shareableWorklet","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","WorkletNode","Error","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","WorkletProcessingNode","createWorkletSourceNode","startOffset","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_AudioDecoder","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","ArrayBuffer","TypeError","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","assertWorkletsEnabled","shareableWorklet","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","WorkletNode","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","WorkletProcessingNode","createWorkletSourceNode","startOffset","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
12
12
  class OfflineAudioContext extends _BaseAudioContext.default {
13
13
  constructor(arg0, arg1, arg2) {
14
14
  let audioRuntime = null;
15
- if (_utils.isWorkletsAvailable) {
15
+ if (_utils.isWorkletsVersionSupported) {
16
16
  audioRuntime = _utils.workletsModule.createWorkletRuntime('AudioWorkletRuntime');
17
17
  }
18
18
  if (typeof arg0 === 'object') {
@@ -1 +1 @@
1
- {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_errors","_AudioBuffer","_utils","e","__esModule","default","OfflineAudioContext","BaseAudioContext","constructor","arg0","arg1","arg2","audioRuntime","isWorkletsAvailable","workletsModule","createWorkletRuntime","numberOfChannels","length","sampleRate","global","createOfflineAudioContext","duration","NotSupportedError","isSuspended","isRendering","resume","InvalidStateError","context","suspend","suspendTime","currentTime","startRendering","audioBuffer","AudioBuffer","exports"],"sourceRoot":"../../../src","sources":["core/OfflineAudioContext.ts"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAA+D,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAMG,mBAAmB,SAASC,yBAAgB,CAAC;EAOhEC,WAAWA,CACTC,IAAyC,EACzCC,IAAa,EACbC,IAAa,EACb;IACA,IAAIC,YAAY,GAAG,IAAI;IACvB,IAAIC,0BAAmB,EAAE;MACvBD,YAAY,GAAGE,qBAAc,CAACC,oBAAoB,CAAC,qBAAqB,CAAC;IAC3E;IAEA,IAAI,OAAON,IAAI,KAAK,QAAQ,EAAE;MAC5B,MAAM;QAAEO,gBAAgB;QAAEC,MAAM;QAAEC;MAAW,CAAC,GAAGT,IAAI;MACrD,KAAK,CACHU,MAAM,CAACC,yBAAyB,CAC9BJ,gBAAgB,EAChBC,MAAM,EACNC,UAAU,EACVN,YACF,CACF,CAAC;MAED,IAAI,CAACS,QAAQ,GAAGJ,MAAM,GAAGC,UAAU;IACrC,CAAC,MAAM,IACL,OAAOT,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,EACxB;MACA,KAAK,CAACQ,MAAM,CAACC,yBAAyB,CAACX,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,YAAY,CAAC,CAAC;MACvE,IAAI,CAACS,QAAQ,GAAGX,IAAI,GAAGC,IAAI;IAC7B,CAAC,MAAM;MACL,MAAM,IAAIW,yBAAiB,CAAC,+BAA+B,CAAC;IAC9D;IAEA,IAAI,CAACC,WAAW,GAAG,KAAK;IACxB,IAAI,CAACC,WAAW,GAAG,KAAK;EAC1B;EAEA,MAAMC,MAAMA,CAAA,EAAuB;IACjC,IAAI,CAAC,IAAI,CAACD,WAAW,EAAE;MACrB,MAAM,IAAIE,yBAAiB,CACzB,sDACF,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACH,WAAW,EAAE;MACrB,MAAM,IAAIG,yBAAiB,CACzB,4DACF,CAAC;IACH;IAEA,IAAI,CAACH,WAAW,GAAG,KAAK;IAExB,MAAO,IAAI,CAACI,OAAO,CAA0BF,MAAM,CAAC,CAAC;EACvD;EAEA,MAAMG,OAAOA,CAACC,WAAmB,EAAsB;IACrD,IAAIA,WAAW,GAAG,CAAC,EAAE;MACnB,MAAM,IAAIH,yBAAiB,CAAC,2CAA2C,CAAC;IAC1E;IAEA,IAAIG,WAAW,GAAG,IAAI,CAACF,OAAO,CAACG,WAAW,EAAE;MAC1C,MAAM,IAAIJ,yBAAiB,CACzB,sDAAsDG,WAAW,EACnE,CAAC;IACH;IAEA,IAAIA,WAAW,GAAG,IAAI,CAACR,QAAQ,EAAE;MAC/B,MAAM,IAAIK,yBAAiB,CACzB,8DAA8DG,WAAW,EAC3E,CAAC;IACH;IAEA,IAAI,CAACN,WAAW,GAAG,IAAI;IAEvB,MAAO,IAAI,CAACI,OAAO,CAA0BC,OAAO,CAACC,WAAW,CAAC;EACnE;EAEA,MAAME,cAAcA,CAAA,EAAyB;IAC3C,IAAI,IAAI,CAACP,WAAW,EAAE;MACpB,MAAM,IAAIE,yBAAiB,CAAC,0CAA0C,CAAC;IACzE;IAEA,IAAI,CAACF,WAAW,GAAG,IAAI;IAEvB,MAAMQ,WAAW,GAAG,MAClB,IAAI,CAACL,OAAO,CACZI,cAAc,CAAC,CAAC;IAElB,OAAO,IAAIE,oBAAW,CAACD,WAAW,CAAC;EACrC;AACF;AAACE,OAAA,CAAA7B,OAAA,GAAAC,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_errors","_AudioBuffer","_utils","e","__esModule","default","OfflineAudioContext","BaseAudioContext","constructor","arg0","arg1","arg2","audioRuntime","isWorkletsVersionSupported","workletsModule","createWorkletRuntime","numberOfChannels","length","sampleRate","global","createOfflineAudioContext","duration","NotSupportedError","isSuspended","isRendering","resume","InvalidStateError","context","suspend","suspendTime","currentTime","startRendering","audioBuffer","AudioBuffer","exports"],"sourceRoot":"../../../src","sources":["core/OfflineAudioContext.ts"],"mappings":"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","ignoreList":[]}
@@ -3,18 +3,33 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.assertWorkletsEnabled = assertWorkletsEnabled;
6
7
  exports.clamp = clamp;
7
- exports.workletsModule = exports.isWorkletsAvailable = void 0;
8
+ exports.workletsVersion = exports.workletsModule = exports.supportedWorkletsVersions = exports.isWorkletsVersionSupported = void 0;
8
9
  function clamp(value, min, max) {
9
10
  return Math.min(Math.max(value, min), max);
10
11
  }
11
- let isWorkletsAvailable = exports.isWorkletsAvailable = false;
12
+ let isWorkletsAvailable = false;
13
+ let isWorkletsVersionSupported = exports.isWorkletsVersionSupported = false;
14
+ let workletsVersion = exports.workletsVersion = 'unknown';
15
+ const supportedWorkletsVersions = exports.supportedWorkletsVersions = ['0.6.0', '0.6.1'];
12
16
  let workletsModule = exports.workletsModule = void 0;
17
+ function assertWorkletsEnabled() {
18
+ if (!isWorkletsAvailable) {
19
+ throw new Error('[react-native-audio-api]: Worklets are not available. Please install react-native-worklets to use this feature.');
20
+ } else if (!isWorkletsVersionSupported) {
21
+ throw new Error(`[react-native-audio-api]: Worklets version ${workletsVersion} is not supported.
22
+ Please install react-native-worklets of one of the following versions: [${supportedWorkletsVersions.join(', ')}] to use this feature.`);
23
+ }
24
+ }
13
25
  try {
14
26
  exports.workletsModule = workletsModule = require('react-native-worklets');
15
- exports.isWorkletsAvailable = isWorkletsAvailable = true;
27
+ const workletsModuleJson = require('react-native-worklets/package.json');
28
+ exports.isWorkletsVersionSupported = isWorkletsVersionSupported = supportedWorkletsVersions.includes(workletsModuleJson.version);
29
+ isWorkletsAvailable = true;
30
+ exports.workletsVersion = workletsVersion = workletsModuleJson.version;
16
31
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
32
  } catch (error) {
18
- exports.isWorkletsAvailable = isWorkletsAvailable = false;
33
+ isWorkletsAvailable = false;
19
34
  }
20
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["clamp","value","min","max","Math","isWorkletsAvailable","exports","workletsModule","require","error"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;AAWO,SAASA,KAAKA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,EAAU;EACrE,OAAOC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC5C;AAEO,IAAIE,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,KAAK;AAC/B,IAAIE,cAAuC,GAAAD,OAAA,CAAAC,cAAA;AAElD,IAAI;EACFD,OAAA,CAAAC,cAAA,GAAAA,cAAc,GAAGC,OAAO,CAAC,uBAAuB,CAAC;EACjDF,OAAA,CAAAD,mBAAA,GAAAA,mBAAmB,GAAG,IAAI;EAC1B;AACF,CAAC,CAAC,OAAOI,KAAK,EAAE;EACdH,OAAA,CAAAD,mBAAA,GAAAA,mBAAmB,GAAG,KAAK;AAC7B","ignoreList":[]}
1
+ {"version":3,"names":["clamp","value","min","max","Math","isWorkletsAvailable","isWorkletsVersionSupported","exports","workletsVersion","supportedWorkletsVersions","workletsModule","assertWorkletsEnabled","Error","join","require","workletsModuleJson","includes","version","error"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;;AAWO,SAASA,KAAKA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,EAAU;EACrE,OAAOC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC5C;AAEA,IAAIE,mBAAmB,GAAG,KAAK;AACxB,IAAIC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,KAAK;AACtC,IAAIE,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,SAAS;AAC/B,MAAMC,yBAAyB,GAAAF,OAAA,CAAAE,yBAAA,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AACpD,IAAIC,cAAuC,GAAAH,OAAA,CAAAG,cAAA;AAE3C,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAI,CAACN,mBAAmB,EAAE;IACxB,MAAM,IAAIO,KAAK,CACb,iHACF,CAAC;EACH,CAAC,MAAM,IAAI,CAACN,0BAA0B,EAAE;IACtC,MAAM,IAAIM,KAAK,CACb,8CAA8CJ,eAAe;AACnE,gFAAgFC,yBAAyB,CAACI,IAAI,CAAC,IAAI,CAAC,wBAChH,CAAC;EACH;AACF;AAEA,IAAI;EACFN,OAAA,CAAAG,cAAA,GAAAA,cAAc,GAAGI,OAAO,CAAC,uBAAuB,CAAC;EACjD,MAAMC,kBAAkB,GAAGD,OAAO,CAAC,oCAAoC,CAAC;EACxEP,OAAA,CAAAD,0BAAA,GAAAA,0BAA0B,GAAGG,yBAAyB,CAACO,QAAQ,CAC7DD,kBAAkB,CAACE,OACrB,CAAC;EACDZ,mBAAmB,GAAG,IAAI;EAC1BE,OAAA,CAAAC,eAAA,GAAAA,eAAe,GAAGO,kBAAkB,CAACE,OAAO;EAC5C;AACF,CAAC,CAAC,OAAOC,KAAK,EAAE;EACdb,mBAAmB,GAAG,KAAK;AAC7B","ignoreList":[]}
@@ -3,14 +3,14 @@
3
3
  import BaseAudioContext from "./BaseAudioContext.js";
4
4
  import AudioManager from "../system/index.js";
5
5
  import { NotSupportedError } from "../errors/index.js";
6
- import { isWorkletsAvailable, workletsModule } from "../utils/index.js";
6
+ import { isWorkletsVersionSupported, workletsModule } from "../utils/index.js";
7
7
  export default class AudioContext extends BaseAudioContext {
8
8
  constructor(options) {
9
9
  if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
10
10
  throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
11
11
  }
12
12
  let audioRuntime = null;
13
- if (isWorkletsAvailable) {
13
+ if (isWorkletsVersionSupported) {
14
14
  audioRuntime = workletsModule.createWorkletRuntime('AudioWorkletRuntime');
15
15
  }
16
16
  super(global.createAudioContext(options?.sampleRate || AudioManager.getDevicePreferredSampleRate(), options?.initSuspended || false, audioRuntime));
@@ -1 +1 @@
1
- {"version":3,"names":["BaseAudioContext","AudioManager","NotSupportedError","isWorkletsAvailable","workletsModule","AudioContext","constructor","options","sampleRate","audioRuntime","createWorkletRuntime","global","createAudioContext","getDevicePreferredSampleRate","initSuspended","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,YAAY,MAAM,oBAAW;AAEpC,SAASC,iBAAiB,QAAQ,oBAAW;AAC7C,SAASC,mBAAmB,EAAEC,cAAc,QAAQ,mBAAU;AAE9D,eAAe,MAAMC,YAAY,SAASL,gBAAgB,CAAC;EACzDM,WAAWA,CAACC,OAA6B,EAAE;IACzC,IACEA,OAAO,IACPA,OAAO,CAACC,UAAU,KACjBD,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EACzD;MACA,MAAM,IAAIN,iBAAiB,CACzB,6CAA6CK,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IACA,IAAIC,YAAY,GAAG,IAAI;IACvB,IAAIN,mBAAmB,EAAE;MACvBM,YAAY,GAAGL,cAAc,CAACM,oBAAoB,CAAC,qBAAqB,CAAC;IAC3E;IAEA,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBL,OAAO,EAAEC,UAAU,IAAIP,YAAY,CAACY,4BAA4B,CAAC,CAAC,EAClEN,OAAO,EAAEO,aAAa,IAAI,KAAK,EAC/BL,YACF,CACF,CAAC;EACH;EAEA,MAAMM,KAAKA,CAAA,EAAkB;IAC3B,OAAQ,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAChD;EAEA,MAAME,MAAMA,CAAA,EAAqB;IAC/B,OAAQ,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EACjD;EAEA,MAAMC,OAAOA,CAAA,EAAqB;IAChC,OAAQ,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EAClD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["BaseAudioContext","AudioManager","NotSupportedError","isWorkletsVersionSupported","workletsModule","AudioContext","constructor","options","sampleRate","audioRuntime","createWorkletRuntime","global","createAudioContext","getDevicePreferredSampleRate","initSuspended","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,YAAY,MAAM,oBAAW;AAEpC,SAASC,iBAAiB,QAAQ,oBAAW;AAC7C,SAASC,0BAA0B,EAAEC,cAAc,QAAQ,mBAAU;AAErE,eAAe,MAAMC,YAAY,SAASL,gBAAgB,CAAC;EACzDM,WAAWA,CAACC,OAA6B,EAAE;IACzC,IACEA,OAAO,IACPA,OAAO,CAACC,UAAU,KACjBD,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EACzD;MACA,MAAM,IAAIN,iBAAiB,CACzB,6CAA6CK,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IACA,IAAIC,YAAY,GAAG,IAAI;IAEvB,IAAIN,0BAA0B,EAAE;MAC9BM,YAAY,GAAGL,cAAc,CAACM,oBAAoB,CAAC,qBAAqB,CAAC;IAC3E;IAEA,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBL,OAAO,EAAEC,UAAU,IAAIP,YAAY,CAACY,4BAA4B,CAAC,CAAC,EAClEN,OAAO,EAAEO,aAAa,IAAI,KAAK,EAC/BL,YACF,CACF,CAAC;EACH;EAEA,MAAMM,KAAKA,CAAA,EAAkB;IAC3B,OAAQ,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAChD;EAEA,MAAME,MAAMA,CAAA,EAAqB;IAC/B,OAAQ,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EACjD;EAEA,MAAMC,OAAOA,CAAA,EAAqB;IAChC,OAAQ,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EAClD;AACF","ignoreList":[]}