react-native-audio-api 0.9.0 → 0.9.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.
Files changed (101) hide show
  1. package/RNAudioAPI.podspec +5 -2
  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/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
  8. package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
  9. package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
  10. package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
  11. package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
  12. package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
  13. package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
  14. package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
  15. package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
  16. package/android/src/main/jniLibs/x86/libavformat.so +0 -0
  17. package/android/src/main/jniLibs/x86/libavutil.so +0 -0
  18. package/android/src/main/jniLibs/x86/libswresample.so +0 -0
  19. package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
  20. package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
  21. package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
  22. package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
  23. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +37 -6
  24. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +12 -5
  25. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.cpp +3 -8
  26. package/common/cpp/audioapi/core/BaseAudioContext.cpp +12 -6
  27. package/common/cpp/audioapi/core/BaseAudioContext.h +14 -3
  28. package/common/cpp/audioapi/core/effects/WorkletNode.cpp +39 -52
  29. package/common/cpp/audioapi/core/effects/WorkletNode.h +6 -10
  30. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.cpp +17 -19
  31. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.h +2 -5
  32. package/common/cpp/audioapi/core/sources/AudioBuffer.h +1 -0
  33. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +0 -4
  34. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +0 -1
  35. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +0 -2
  36. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +0 -4
  37. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +0 -1
  38. package/common/cpp/audioapi/core/sources/StreamerNode.cpp +16 -6
  39. package/common/cpp/audioapi/core/sources/StreamerNode.h +3 -1
  40. package/common/cpp/audioapi/core/sources/WorkletSourceNode.cpp +14 -16
  41. package/common/cpp/audioapi/core/sources/WorkletSourceNode.h +2 -5
  42. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +32 -13
  43. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +75 -2
  44. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +50 -36
  45. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +5 -1
  46. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/libavcodec +0 -0
  47. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
  48. package/common/cpp/audioapi/external/libavformat.xcframework/Info.plist +5 -5
  49. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/libavformat +0 -0
  50. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
  51. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/libavutil +0 -0
  52. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
  53. package/common/cpp/audioapi/external/libswresample.xcframework/Info.plist +5 -5
  54. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/libswresample +0 -0
  55. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
  56. package/common/cpp/audioapi/jsi/AudioArrayBuffer.cpp +2 -2
  57. package/common/cpp/audioapi/jsi/AudioArrayBuffer.h +10 -11
  58. package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +1 -1
  59. package/common/cpp/audioapi/utils/AudioBus.cpp +4 -0
  60. package/common/cpp/audioapi/utils/AudioBus.h +1 -0
  61. package/common/cpp/test/CMakeLists.txt +7 -4
  62. package/common/cpp/test/RunTests.sh +2 -2
  63. package/common/cpp/test/{AudioParamTest.cpp → src/AudioParamTest.cpp} +1 -1
  64. package/common/cpp/test/src/ConstantSourceTest.cpp +64 -0
  65. package/common/cpp/test/{GainTest.cpp → src/GainTest.cpp} +11 -10
  66. package/common/cpp/test/{MockAudioEventHandlerRegistry.h → src/MockAudioEventHandlerRegistry.h} +4 -2
  67. package/common/cpp/test/{OscillatorTest.cpp → src/OscillatorTest.cpp} +6 -4
  68. package/common/cpp/test/{StereoPannerTest.cpp → src/StereoPannerTest.cpp} +1 -1
  69. package/ios/audioapi/ios/AudioAPIModule.h +2 -1
  70. package/ios/audioapi/ios/AudioAPIModule.mm +2 -0
  71. package/ios/audioapi/ios/core/IOSAudioRecorder.h +2 -1
  72. package/lib/commonjs/core/AudioContext.js +1 -5
  73. package/lib/commonjs/core/AudioContext.js.map +1 -1
  74. package/lib/commonjs/core/BaseAudioContext.js +16 -25
  75. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  76. package/lib/commonjs/core/OfflineAudioContext.js +1 -5
  77. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  78. package/lib/commonjs/utils/index.js +20 -4
  79. package/lib/commonjs/utils/index.js.map +1 -1
  80. package/lib/module/core/AudioContext.js +2 -6
  81. package/lib/module/core/AudioContext.js.map +1 -1
  82. package/lib/module/core/BaseAudioContext.js +17 -26
  83. package/lib/module/core/BaseAudioContext.js.map +1 -1
  84. package/lib/module/core/OfflineAudioContext.js +2 -6
  85. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  86. package/lib/module/utils/index.js +16 -1
  87. package/lib/module/utils/index.js.map +1 -1
  88. package/lib/typescript/core/AudioContext.d.ts +0 -1
  89. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  90. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  91. package/lib/typescript/core/OfflineAudioContext.d.ts +0 -1
  92. package/lib/typescript/core/OfflineAudioContext.d.ts.map +1 -1
  93. package/lib/typescript/utils/index.d.ts +4 -1
  94. package/lib/typescript/utils/index.d.ts.map +1 -1
  95. package/package.json +4 -1
  96. package/scripts/rnaa_utils.rb +8 -0
  97. package/scripts/validate-worklets-version.js +28 -0
  98. package/src/core/AudioContext.ts +3 -7
  99. package/src/core/BaseAudioContext.ts +44 -60
  100. package/src/core/OfflineAudioContext.ts +2 -7
  101. package/src/utils/index.ts +23 -1
@@ -8,32 +8,32 @@
8
8
  <key>BinaryPath</key>
9
9
  <string>libswresample.framework/libswresample</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64_x86_64-simulator</string>
11
+ <string>ios-arm64</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>libswresample.framework</string>
14
14
  <key>SupportedArchitectures</key>
15
15
  <array>
16
16
  <string>arm64</string>
17
- <string>x86_64</string>
18
17
  </array>
19
18
  <key>SupportedPlatform</key>
20
19
  <string>ios</string>
21
- <key>SupportedPlatformVariant</key>
22
- <string>simulator</string>
23
20
  </dict>
24
21
  <dict>
25
22
  <key>BinaryPath</key>
26
23
  <string>libswresample.framework/libswresample</string>
27
24
  <key>LibraryIdentifier</key>
28
- <string>ios-arm64</string>
25
+ <string>ios-arm64_x86_64-simulator</string>
29
26
  <key>LibraryPath</key>
30
27
  <string>libswresample.framework</string>
31
28
  <key>SupportedArchitectures</key>
32
29
  <array>
33
30
  <string>arm64</string>
31
+ <string>x86_64</string>
34
32
  </array>
35
33
  <key>SupportedPlatform</key>
36
34
  <string>ios</string>
35
+ <key>SupportedPlatformVariant</key>
36
+ <string>simulator</string>
37
37
  </dict>
38
38
  </array>
39
39
  <key>CFBundlePackageType</key>
@@ -3,11 +3,11 @@
3
3
  namespace audioapi {
4
4
 
5
5
  size_t AudioArrayBuffer::size() const {
6
- return size_;
6
+ return audioArray_->getSize() * sizeof(float);
7
7
  }
8
8
 
9
9
  uint8_t *AudioArrayBuffer::data() {
10
- return data_;
10
+ return reinterpret_cast<uint8_t *>(audioArray_->getData());
11
11
  }
12
12
 
13
13
  } // namespace audioapi
@@ -1,6 +1,10 @@
1
1
  #pragma once
2
2
 
3
3
  #include <jsi/jsi.h>
4
+ #include <audioapi/utils/AudioArray.h>
5
+
6
+ #include <memory>
7
+ #include <utility>
4
8
 
5
9
  namespace audioapi {
6
10
 
@@ -8,16 +12,12 @@ using namespace facebook;
8
12
 
9
13
  class AudioArrayBuffer : public jsi::MutableBuffer {
10
14
  public:
11
- AudioArrayBuffer(uint8_t *data, size_t size): data_(data), size_(size) {}
12
- ~AudioArrayBuffer() override {
13
- if (data_ == nullptr) {
14
- return;
15
- }
16
- delete[] data_;
17
- }
15
+ explicit AudioArrayBuffer(const std::shared_ptr<AudioArray> &audioArray): audioArray_(audioArray) {}
16
+ ~AudioArrayBuffer() override = default;
17
+
18
18
  AudioArrayBuffer(AudioArrayBuffer &&other) noexcept
19
- : data_(other.data_), size_(other.size_) {
20
- other.data_ = nullptr;
19
+ : audioArray_(std::move(other.audioArray_)) {
20
+ other.audioArray_ = nullptr;
21
21
  }
22
22
 
23
23
  AudioArrayBuffer(const AudioArrayBuffer &) = delete;
@@ -28,8 +28,7 @@ class AudioArrayBuffer : public jsi::MutableBuffer {
28
28
  uint8_t *data() override;
29
29
 
30
30
  private:
31
- uint8_t *data_;
32
- const size_t size_;
31
+ std::shared_ptr<AudioArray> audioArray_;
33
32
  };
34
33
 
35
34
  } // namespace audioapi
@@ -42,7 +42,7 @@ COMMON_CONFIG="
42
42
  --disable-audiotoolbox
43
43
  --disable-videotoolbox
44
44
  --disable-hwaccels
45
- --enable-protocol=https,tls,tcp
45
+ --enable-protocol=https,tls,tcp,http
46
46
  --enable-demuxer=hls
47
47
  --enable-demuxer=mov
48
48
  --enable-demuxer=mp3
@@ -128,6 +128,10 @@ AudioArray *AudioBus::getChannelByType(int channelType) const {
128
128
  }
129
129
  }
130
130
 
131
+ std::shared_ptr<AudioArray> AudioBus::getSharedChannel(int index) const {
132
+ return channels_[index];
133
+ }
134
+
131
135
  AudioArray &AudioBus::operator[](size_t index) {
132
136
  return *channels_[index];
133
137
  }
@@ -34,6 +34,7 @@ class AudioBus {
34
34
  [[nodiscard]] size_t getSize() const;
35
35
  [[nodiscard]] AudioArray *getChannel(int index) const;
36
36
  [[nodiscard]] AudioArray *getChannelByType(int channelType) const;
37
+ [[nodiscard]] std::shared_ptr<AudioArray> getSharedChannel(int index) const;
37
38
 
38
39
  AudioArray &operator[](size_t index);
39
40
  const AudioArray &operator[](size_t index) const;
@@ -62,12 +62,15 @@ target_include_directories(rnaudioapi PUBLIC
62
62
  target_include_directories(rnaudioapi_libs PUBLIC
63
63
  ${ROOT}/packages/react-native-audio-api/common/cpp
64
64
  )
65
+
66
+ file(GLOB_RECURSE test_src
67
+ CONFIGURE_DEPENDS
68
+ "src/*.cpp"
69
+ )
70
+
65
71
  add_executable(
66
72
  tests
67
- OscillatorTest.cpp
68
- GainTest.cpp
69
- AudioParamTest.cpp
70
- StereoPannerTest.cpp
73
+ ${test_src}
71
74
  )
72
75
 
73
76
  add_compile_definitions(AUDIO_API_TEST_SUITE)
@@ -11,10 +11,10 @@ trap cleanup EXIT
11
11
 
12
12
  cd packages/react-native-audio-api/common/cpp/test
13
13
 
14
- cmake -S . -B build
14
+ cmake -S . -B build -Wno-dev
15
15
 
16
16
  cd build
17
- make -j4
17
+ make -j10
18
18
  ./tests
19
19
  cd ..
20
20
 
@@ -2,7 +2,7 @@
2
2
  #include <audioapi/core/OfflineAudioContext.h>
3
3
  #include <audioapi/core/utils/worklets/SafeIncludes.h>
4
4
  #include <gtest/gtest.h>
5
- #include "MockAudioEventHandlerRegistry.h"
5
+ #include <test/src/MockAudioEventHandlerRegistry.h>
6
6
 
7
7
  using namespace audioapi;
8
8
 
@@ -0,0 +1,64 @@
1
+ #include <audioapi/core/OfflineAudioContext.h>
2
+ #include <audioapi/core/sources/ConstantSourceNode.h>
3
+ #include <audioapi/core/utils/worklets/SafeIncludes.h>
4
+ #include <audioapi/utils/AudioArray.h>
5
+ #include <audioapi/utils/AudioBus.h>
6
+ #include <gtest/gtest.h>
7
+ #include <test/src/MockAudioEventHandlerRegistry.h>
8
+
9
+ using namespace audioapi;
10
+
11
+ class ConstantSourceTest : public ::testing::Test {
12
+ protected:
13
+ std::shared_ptr<IAudioEventHandlerRegistry> eventRegistry;
14
+ std::unique_ptr<OfflineAudioContext> context;
15
+ static constexpr int sampleRate = 44100;
16
+
17
+ void SetUp() override {
18
+ eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
19
+ context = std::make_unique<OfflineAudioContext>(
20
+ 2, 5 * sampleRate, sampleRate, eventRegistry, RuntimeRegistry{});
21
+ }
22
+ };
23
+
24
+ class TestableConstantSourceNode : public ConstantSourceNode {
25
+ public:
26
+ explicit TestableConstantSourceNode(BaseAudioContext *context)
27
+ : ConstantSourceNode(context) {}
28
+
29
+ void setOffsetParam(float value) {
30
+ getOffsetParam()->setValue(value);
31
+ }
32
+
33
+ std::shared_ptr<AudioBus> processNode(
34
+ const std::shared_ptr<AudioBus> &processingBus,
35
+ int framesToProcess) override {
36
+ return ConstantSourceNode::processNode(processingBus, framesToProcess);
37
+ }
38
+ };
39
+
40
+ TEST_F(ConstantSourceTest, ConstantSourceCanBeCreated) {
41
+ auto constantSource = context->createConstantSource();
42
+ ASSERT_NE(constantSource, nullptr);
43
+ }
44
+
45
+ TEST_F(ConstantSourceTest, ConstantSourceOutputsConstantValue) {
46
+ static constexpr int FRAMES_TO_PROCESS = 4;
47
+
48
+ auto bus =
49
+ std::make_shared<audioapi::AudioBus>(FRAMES_TO_PROCESS, 1, sampleRate);
50
+ auto constantSource =
51
+ std::make_shared<TestableConstantSourceNode>(context.get());
52
+ constantSource->start(context->getCurrentTime());
53
+ auto resultBus = constantSource->processNode(bus, FRAMES_TO_PROCESS);
54
+
55
+ for (int i = 0; i < FRAMES_TO_PROCESS; ++i) {
56
+ EXPECT_FLOAT_EQ((*resultBus->getChannel(0))[i], 1.0f);
57
+ }
58
+
59
+ constantSource->setOffsetParam(0.5f);
60
+ resultBus = constantSource->processNode(bus, FRAMES_TO_PROCESS);
61
+ for (int i = 0; i < FRAMES_TO_PROCESS; ++i) {
62
+ EXPECT_FLOAT_EQ((*resultBus->getChannel(0))[i], 0.5f);
63
+ }
64
+ }
@@ -4,34 +4,35 @@
4
4
  #include <audioapi/utils/AudioArray.h>
5
5
  #include <audioapi/utils/AudioBus.h>
6
6
  #include <gtest/gtest.h>
7
- #include "MockAudioEventHandlerRegistry.h"
7
+ #include <test/src/MockAudioEventHandlerRegistry.h>
8
+
9
+ using namespace audioapi;
8
10
 
9
11
  class GainTest : public ::testing::Test {
10
12
  protected:
11
- std::shared_ptr<audioapi::IAudioEventHandlerRegistry> eventRegistry;
12
- std::unique_ptr<audioapi::OfflineAudioContext> context;
13
+ std::shared_ptr<IAudioEventHandlerRegistry> eventRegistry;
14
+ std::unique_ptr<OfflineAudioContext> context;
13
15
  static constexpr int sampleRate = 44100;
14
16
 
15
17
  void SetUp() override {
16
18
  eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
17
- context = std::make_unique<audioapi::OfflineAudioContext>(
19
+ context = std::make_unique<OfflineAudioContext>(
18
20
  2, 5 * sampleRate, sampleRate, eventRegistry, RuntimeRegistry{});
19
21
  }
20
22
  };
21
23
 
22
- class TestableGainNode : public audioapi::GainNode {
24
+ class TestableGainNode : public GainNode {
23
25
  public:
24
- explicit TestableGainNode(audioapi::BaseAudioContext *context)
25
- : audioapi::GainNode(context) {}
26
+ explicit TestableGainNode(BaseAudioContext *context) : GainNode(context) {}
26
27
 
27
28
  void setGainParam(float value) {
28
29
  getGainParam()->setValue(value);
29
30
  }
30
31
 
31
- std::shared_ptr<audioapi::AudioBus> processNode(
32
- const std::shared_ptr<audioapi::AudioBus> &processingBus,
32
+ std::shared_ptr<AudioBus> processNode(
33
+ const std::shared_ptr<AudioBus> &processingBus,
33
34
  int framesToProcess) override {
34
- return audioapi::GainNode::processNode(processingBus, framesToProcess);
35
+ return GainNode::processNode(processingBus, framesToProcess);
35
36
  }
36
37
  };
37
38
 
@@ -6,9 +6,11 @@
6
6
  #include <string>
7
7
  #include <memory>
8
8
 
9
- using EventMap = std::unordered_map<std::string, audioapi::EventValue>;
9
+ using namespace audioapi;
10
10
 
11
- class MockAudioEventHandlerRegistry : public audioapi::IAudioEventHandlerRegistry {
11
+ using EventMap = std::unordered_map<std::string, EventValue>;
12
+
13
+ class MockAudioEventHandlerRegistry : public IAudioEventHandlerRegistry {
12
14
  public:
13
15
  MOCK_METHOD(uint64_t, registerHandler,
14
16
  (const std::string &eventName, const std::shared_ptr<facebook::jsi::Function> &handler), (override));
@@ -2,17 +2,19 @@
2
2
  #include <audioapi/core/sources/OscillatorNode.h>
3
3
  #include <audioapi/core/utils/worklets/SafeIncludes.h>
4
4
  #include <gtest/gtest.h>
5
- #include "MockAudioEventHandlerRegistry.h"
5
+ #include <test/src/MockAudioEventHandlerRegistry.h>
6
+
7
+ using namespace audioapi;
6
8
 
7
9
  class OscillatorTest : public ::testing::Test {
8
10
  protected:
9
- std::shared_ptr<audioapi::IAudioEventHandlerRegistry> eventRegistry;
10
- std::unique_ptr<audioapi::OfflineAudioContext> context;
11
+ std::shared_ptr<IAudioEventHandlerRegistry> eventRegistry;
12
+ std::unique_ptr<OfflineAudioContext> context;
11
13
  static constexpr int sampleRate = 44100;
12
14
 
13
15
  void SetUp() override {
14
16
  eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
15
- context = std::make_unique<audioapi::OfflineAudioContext>(
17
+ context = std::make_unique<OfflineAudioContext>(
16
18
  2, 5 * sampleRate, sampleRate, eventRegistry, RuntimeRegistry{});
17
19
  }
18
20
  };
@@ -4,7 +4,7 @@
4
4
  #include <audioapi/utils/AudioArray.h>
5
5
  #include <audioapi/utils/AudioBus.h>
6
6
  #include <gtest/gtest.h>
7
- #include "MockAudioEventHandlerRegistry.h"
7
+ #include <test/src/MockAudioEventHandlerRegistry.h>
8
8
 
9
9
  using namespace audioapi;
10
10
 
@@ -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,7 +18,8 @@ class IOSAudioRecorder : public AudioRecorder {
18
18
  IOSAudioRecorder(
19
19
  float sampleRate,
20
20
  int bufferLength,
21
- const std::shared_ptr<AudioEventHandlerRegistry> &audioEventHandlerRegistry);
21
+ const std::shared_ptr<AudioEventHandlerRegistry>
22
+ &audioEventHandlerRegistry);
22
23
 
23
24
  ~IOSAudioRecorder() override;
24
25
 
@@ -10,19 +10,15 @@ var _errors = require("../errors");
10
10
  var _utils = require("../utils");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  class AudioContext extends _BaseAudioContext.default {
13
- // We need to keep here a reference to this runtime to better manage its lifecycle
14
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
15
- _audioRuntime = null;
16
13
  constructor(options) {
17
14
  if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
18
15
  throw new _errors.NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
19
16
  }
20
17
  let audioRuntime = null;
21
- if (_utils.isWorkletsAvailable) {
18
+ if (_utils.isWorkletsVersionSupported) {
22
19
  audioRuntime = _utils.workletsModule.createWorkletRuntime('AudioWorkletRuntime');
23
20
  }
24
21
  super(global.createAudioContext(options?.sampleRate || _system.default.getDevicePreferredSampleRate(), options?.initSuspended || false, audioRuntime));
25
- this._audioRuntime = audioRuntime;
26
22
  }
27
23
  async close() {
28
24
  return this.context.close();
@@ -1 +1 @@
1
- {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_system","_errors","_utils","e","__esModule","default","AudioContext","BaseAudioContext","_audioRuntime","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;EACzD;EACA;EACQC,aAAa,GAAQ,IAAI;EAEjCC,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;IACD,IAAI,CAACL,aAAa,GAAGK,YAAY;EACnC;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,CAAArB,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":[]}
@@ -42,37 +42,28 @@ class BaseAudioContext {
42
42
  if (bufferLength < 1) {
43
43
  throw new _errors.NotSupportedError(`The buffer length provided (${bufferLength}) can not be less than 1`);
44
44
  }
45
- if (_utils.isWorkletsAvailable) {
46
- const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
47
- 'worklet';
45
+ (0, _utils.assertWorkletsEnabled)();
46
+ const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((audioBuffers, channelCount) => {
47
+ 'worklet';
48
48
 
49
- const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
50
- callback(floatAudioData, channelCount);
51
- });
52
- return new _WorkletNode.default(this, this.context.createWorkletNode(shareableWorklet, workletRuntime === 'UIRuntime', bufferLength, inputChannelCount));
53
- }
54
- /// User does not have worklets as a dependency so he cannot use the worklet API.
55
- throw new Error('[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.');
49
+ const floatAudioData = audioBuffers.map(buffer => new Float32Array(buffer));
50
+ callback(floatAudioData, channelCount);
51
+ });
52
+ return new _WorkletNode.default(this, this.context.createWorkletNode(shareableWorklet, workletRuntime === 'UIRuntime', bufferLength, inputChannelCount));
56
53
  }
57
54
  createWorkletProcessingNode(callback, workletRuntime = 'AudioRuntime') {
58
- if (_utils.isWorkletsAvailable) {
59
- const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
60
- 'worklet';
55
+ (0, _utils.assertWorkletsEnabled)();
56
+ const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((inputBuffers, outputBuffers, framesToProcess, currentTime) => {
57
+ 'worklet';
61
58
 
62
- const inputData = inputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
63
- const outputData = outputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
64
- callback(inputData, outputData, framesToProcess, currentTime);
65
- });
66
- return new _WorkletProcessingNode.default(this, this.context.createWorkletProcessingNode(shareableWorklet, workletRuntime === 'UIRuntime'));
67
- }
68
- /// User does not have worklets as a dependency so he cannot use the worklet API.
69
- throw new Error('[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.');
59
+ const inputData = inputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
60
+ const outputData = outputBuffers.map(buffer => new Float32Array(buffer, 0, framesToProcess));
61
+ callback(inputData, outputData, framesToProcess, currentTime);
62
+ });
63
+ return new _WorkletProcessingNode.default(this, this.context.createWorkletProcessingNode(shareableWorklet, workletRuntime === 'UIRuntime'));
70
64
  }
71
65
  createWorkletSourceNode(callback, workletRuntime = 'AudioRuntime') {
72
- if (!_utils.isWorkletsAvailable) {
73
- /// User does not have worklets as a dependency so he cannot use the worklet API.
74
- throw new Error('[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.');
75
- }
66
+ (0, _utils.assertWorkletsEnabled)();
76
67
  const shareableWorklet = _utils.workletsModule.makeShareableCloneRecursive((audioBuffers, framesToProcess, currentTime, startOffset) => {
77
68
  'worklet';
78
69
 
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_ConstantSourceNode","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","createWorkletNode","callback","bufferLength","inputChannelCount","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","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","Uint8Array","decodePCMInBase64Data","base64","playbackRate","decodePCMAudioDataInBase64","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","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_ConstantSourceNode","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","createWorkletNode","callback","bufferLength","inputChannelCount","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","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","Uint8Array","decodePCMInBase64Data","base64","playbackRate","decodePCMAudioDataInBase64","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
@@ -10,12 +10,9 @@ var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
10
10
  var _utils = require("../utils");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  class OfflineAudioContext extends _BaseAudioContext.default {
13
- // We need to keep here a reference to this runtime to better manage its lifecycle
14
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
15
-
16
13
  constructor(arg0, arg1, arg2) {
17
14
  let audioRuntime = null;
18
- if (_utils.isWorkletsAvailable) {
15
+ if (_utils.isWorkletsVersionSupported) {
19
16
  audioRuntime = _utils.workletsModule.createWorkletRuntime('AudioWorkletRuntime');
20
17
  }
21
18
  if (typeof arg0 === 'object') {
@@ -34,7 +31,6 @@ class OfflineAudioContext extends _BaseAudioContext.default {
34
31
  }
35
32
  this.isSuspended = false;
36
33
  this.isRendering = false;
37
- this._audioRuntime = audioRuntime;
38
34
  }
39
35
  async resume() {
40
36
  if (!this.isRendering) {
@@ -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","_audioRuntime","resume","InvalidStateError","context","suspend","suspendTime","currentTime","startRendering","audioBuffer","AudioBuffer","exports"],"sourceRoot":"../../../src","sources":["core/OfflineAudioContext.ts"],"mappings":"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","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,17 +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;
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
32
  } catch (error) {
17
- exports.isWorkletsAvailable = isWorkletsAvailable = false;
33
+ isWorkletsAvailable = false;
18
34
  }
19
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;AAC5B,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,21 +3,17 @@
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
- // We need to keep here a reference to this runtime to better manage its lifecycle
9
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
10
- _audioRuntime = null;
11
8
  constructor(options) {
12
9
  if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
13
10
  throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
14
11
  }
15
12
  let audioRuntime = null;
16
- if (isWorkletsAvailable) {
13
+ if (isWorkletsVersionSupported) {
17
14
  audioRuntime = workletsModule.createWorkletRuntime('AudioWorkletRuntime');
18
15
  }
19
16
  super(global.createAudioContext(options?.sampleRate || AudioManager.getDevicePreferredSampleRate(), options?.initSuspended || false, audioRuntime));
20
- this._audioRuntime = audioRuntime;
21
17
  }
22
18
  async close() {
23
19
  return this.context.close();