react-native-audio-api 0.6.5-rc.0 → 0.6.5

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 (97) hide show
  1. package/README.md +4 -1
  2. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +4 -2
  3. package/android/src/main/cpp/audioapi/android/core/AudioDecoder.cpp +12 -14
  4. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +38 -8
  5. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.h +9 -3
  6. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +5 -1
  7. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +2 -2
  8. package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +2 -2
  9. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +46 -0
  10. package/android/src/main/res/drawable/skip_backward_15.xml +16 -0
  11. package/android/src/main/res/drawable/skip_forward_15.xml +16 -0
  12. package/android/src/oldarch/NativeAudioAPIModuleSpec.java +4 -0
  13. package/common/cpp/audioapi/HostObjects/AudioBufferBaseSourceNodeHostObject.h +17 -1
  14. package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +3 -5
  15. package/common/cpp/audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h +11 -2
  16. package/common/cpp/audioapi/core/AudioContext.cpp +6 -4
  17. package/common/cpp/audioapi/core/AudioContext.h +1 -1
  18. package/common/cpp/audioapi/core/AudioParam.cpp +17 -5
  19. package/common/cpp/audioapi/core/AudioParam.h +3 -0
  20. package/common/cpp/audioapi/core/BaseAudioContext.cpp +1 -1
  21. package/common/cpp/audioapi/core/BaseAudioContext.h +3 -2
  22. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +2 -1
  23. package/common/cpp/audioapi/core/OfflineAudioContext.h +1 -1
  24. package/common/cpp/audioapi/core/effects/PeriodicWave.cpp +1 -1
  25. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +4 -2
  26. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +1 -0
  27. package/common/cpp/audioapi/core/sources/AudioBuffer.h +1 -0
  28. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +26 -1
  29. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +10 -5
  30. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +24 -2
  31. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +3 -1
  32. package/common/cpp/audioapi/core/utils/AudioNodeDestructor.h +1 -0
  33. package/common/cpp/audioapi/core/utils/AudioNodeManager.h +1 -2
  34. package/common/cpp/audioapi/dsp/AudioUtils.cpp +1 -1
  35. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +121 -41
  36. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +9 -5
  37. package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +25 -0
  38. package/common/cpp/audioapi/jsi/JsiPromise.cpp +1 -0
  39. package/common/cpp/audioapi/utils/AudioArray.h +1 -0
  40. package/common/cpp/audioapi/utils/CircularAudioArray.h +1 -0
  41. package/common/cpp/test/CMakeLists.txt +63 -0
  42. package/common/cpp/test/GainTest.cpp +78 -0
  43. package/common/cpp/test/MockAudioEventHandlerRegistry.h +22 -0
  44. package/common/cpp/test/OscillatorTest.cpp +22 -0
  45. package/common/cpp/test/RunTests.sh +26 -0
  46. package/ios/audioapi/ios/AudioAPIModule.mm +17 -12
  47. package/ios/audioapi/ios/core/IOSAudioPlayer.h +2 -1
  48. package/ios/audioapi/ios/core/IOSAudioPlayer.mm +5 -2
  49. package/ios/audioapi/ios/system/AudioSessionManager.h +4 -0
  50. package/ios/audioapi/ios/system/AudioSessionManager.mm +26 -0
  51. package/ios/audioapi/ios/system/LockScreenManager.mm +2 -0
  52. package/lib/commonjs/core/AudioBufferBaseSourceNode.js +10 -6
  53. package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -1
  54. package/lib/commonjs/core/AudioBufferSourceNode.js +2 -2
  55. package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
  56. package/lib/commonjs/core/AudioScheduledSourceNode.js +8 -4
  57. package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
  58. package/lib/commonjs/plugin/withAudioAPI.js +1 -1
  59. package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
  60. package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
  61. package/lib/commonjs/system/AudioManager.js +3 -0
  62. package/lib/commonjs/system/AudioManager.js.map +1 -1
  63. package/lib/module/core/AudioBufferBaseSourceNode.js +10 -6
  64. package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -1
  65. package/lib/module/core/AudioBufferSourceNode.js +2 -2
  66. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  67. package/lib/module/core/AudioScheduledSourceNode.js +8 -4
  68. package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
  69. package/lib/module/plugin/withAudioAPI.js +1 -1
  70. package/lib/module/plugin/withAudioAPI.js.map +1 -1
  71. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
  72. package/lib/module/system/AudioManager.js +3 -0
  73. package/lib/module/system/AudioManager.js.map +1 -1
  74. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +6 -3
  75. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -1
  76. package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
  77. package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -1
  78. package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
  79. package/lib/typescript/interfaces.d.ts +2 -2
  80. package/lib/typescript/interfaces.d.ts.map +1 -1
  81. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +2 -1
  82. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
  83. package/lib/typescript/system/AudioManager.d.ts +2 -1
  84. package/lib/typescript/system/AudioManager.d.ts.map +1 -1
  85. package/lib/typescript/system/types.d.ts +11 -0
  86. package/lib/typescript/system/types.d.ts.map +1 -1
  87. package/package.json +1 -1
  88. package/src/core/AudioBufferBaseSourceNode.ts +20 -7
  89. package/src/core/AudioBufferSourceNode.ts +2 -8
  90. package/src/core/AudioScheduledSourceNode.ts +11 -3
  91. package/src/interfaces.ts +2 -5
  92. package/src/plugin/withAudioAPI.ts +1 -1
  93. package/src/specs/NativeAudioAPIModule.ts +4 -1
  94. package/src/system/AudioManager.ts +10 -1
  95. package/src/system/types.ts +14 -0
  96. package/android/src/main/res/drawable/skip_backward_10.xml +0 -9
  97. package/android/src/main/res/drawable/skip_forward_10.xml +0 -9
@@ -0,0 +1,22 @@
1
+ #pragma once
2
+
3
+ #include <gmock/gmock.h>
4
+ #include <audioapi/events/IAudioEventHandlerRegistry.h>
5
+ #include <unordered_map>
6
+ #include <string>
7
+ #include <memory>
8
+
9
+ using EventMap = std::unordered_map<std::string, audioapi::EventValue>;
10
+
11
+ class MockAudioEventHandlerRegistry : public audioapi::IAudioEventHandlerRegistry {
12
+ public:
13
+ MOCK_METHOD(uint64_t, registerHandler,
14
+ (const std::string &eventName, const std::shared_ptr<facebook::jsi::Function> &handler), (override));
15
+ MOCK_METHOD(void, unregisterHandler,
16
+ (const std::string &eventName, uint64_t listenerId), (override));
17
+
18
+ MOCK_METHOD(void, invokeHandlerWithEventBody,
19
+ (const std::string &eventName, const EventMap &body), (override));
20
+ MOCK_METHOD(void, invokeHandlerWithEventBody,
21
+ (const std::string &eventName, uint64_t listenerId, const EventMap &body), (override));
22
+ };
@@ -0,0 +1,22 @@
1
+ #include <audioapi/core/OfflineAudioContext.h>
2
+ #include <audioapi/core/sources/OscillatorNode.h>
3
+ #include <gtest/gtest.h>
4
+ #include "MockAudioEventHandlerRegistry.h"
5
+
6
+ class OscillatorTest : public ::testing::Test {
7
+ protected:
8
+ std::shared_ptr<audioapi::IAudioEventHandlerRegistry> eventRegistry;
9
+ std::unique_ptr<audioapi::OfflineAudioContext> context;
10
+ static constexpr int sampleRate = 44100;
11
+
12
+ void SetUp() override {
13
+ eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
14
+ context = std::make_unique<audioapi::OfflineAudioContext>(
15
+ 2, 5 * sampleRate, sampleRate, eventRegistry);
16
+ }
17
+ };
18
+
19
+ TEST_F(OscillatorTest, OscillatorCanBeCreated) {
20
+ auto osc = context->createOscillator();
21
+ ASSERT_NE(osc, nullptr);
22
+ }
@@ -0,0 +1,26 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ cleanup() {
6
+ echo "Cleaning up..."
7
+ rm -rf build/
8
+ }
9
+
10
+ trap cleanup EXIT
11
+ # Step 1: Move to the script's directory
12
+ cd packages/react-native-audio-api/common/cpp/test
13
+ # Step 2: Configure CMake project
14
+ # mkdir build
15
+ cmake -S . -B build
16
+
17
+ # Step 3: Build the project
18
+ cmake --build build
19
+
20
+ # Step 4: Run the test binary
21
+ cd build
22
+ ./tests
23
+ cd ..
24
+
25
+ # Step 5: Clean up build directory
26
+ rm -rf build/
@@ -85,9 +85,8 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getDevicePreferredSampleRate)
85
85
  return [self.audioSessionManager getDevicePreferredSampleRate];
86
86
  }
87
87
 
88
- RCT_EXPORT_METHOD(
89
- setAudioSessionActivity : (BOOL)enabled resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)
90
- reject)
88
+ RCT_EXPORT_METHOD(setAudioSessionActivity : (BOOL)enabled resolve : (RCTPromiseResolveBlock)
89
+ resolve reject : (RCTPromiseRejectBlock)reject)
91
90
  {
92
91
  if ([self.audioSessionManager setActive:enabled]) {
93
92
  resolve(@"true");
@@ -97,9 +96,8 @@ RCT_EXPORT_METHOD(
97
96
  resolve(@"false");
98
97
  }
99
98
 
100
- RCT_EXPORT_METHOD(
101
- setAudioSessionOptions : (NSString *)category mode : (NSString *)mode options : (NSArray *)
102
- options allowHaptics : (BOOL)allowHaptics)
99
+ RCT_EXPORT_METHOD(setAudioSessionOptions : (NSString *)category mode : (NSString *)mode options : (NSArray *)
100
+ options allowHaptics : (BOOL)allowHaptics)
103
101
  {
104
102
  [self.audioSessionManager setAudioSessionOptions:category mode:mode options:options allowHaptics:allowHaptics];
105
103
  }
@@ -129,19 +127,24 @@ RCT_EXPORT_METHOD(observeVolumeChanges : (BOOL)enabled)
129
127
  [self.notificationManager observeVolumeChanges:(BOOL)enabled];
130
128
  }
131
129
 
132
- RCT_EXPORT_METHOD(
133
- requestRecordingPermissions : (nonnull RCTPromiseResolveBlock)resolve reject : (nonnull RCTPromiseRejectBlock)
134
- reject)
130
+ RCT_EXPORT_METHOD(requestRecordingPermissions : (nonnull RCTPromiseResolveBlock)
131
+ resolve reject : (nonnull RCTPromiseRejectBlock)reject)
135
132
  {
136
133
  [self.audioSessionManager requestRecordingPermissions:resolve reject:reject];
137
134
  }
138
135
 
139
- RCT_EXPORT_METHOD(
140
- checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)resolve reject : (nonnull RCTPromiseRejectBlock)reject)
136
+ RCT_EXPORT_METHOD(checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)
137
+ resolve reject : (nonnull RCTPromiseRejectBlock)reject)
141
138
  {
142
139
  [self.audioSessionManager checkRecordingPermissions:resolve reject:reject];
143
140
  }
144
141
 
142
+ RCT_EXPORT_METHOD(getDevicesInfo : (nonnull RCTPromiseResolveBlock)resolve reject : (nonnull RCTPromiseRejectBlock)
143
+ reject)
144
+ {
145
+ [self.audioSessionManager getDevicesInfo:resolve reject:reject];
146
+ }
147
+
145
148
  #ifdef RCT_NEW_ARCH_ENABLED
146
149
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
147
150
  (const facebook::react::ObjCTurboModule::InitParams &)params
@@ -177,7 +180,9 @@ RCT_EXPORT_METHOD(
177
180
  }
178
181
  }
179
182
 
180
- _eventHandler->invokeHandlerWithEventBody(name, body);
183
+ if (_eventHandler != nullptr) {
184
+ _eventHandler->invokeHandlerWithEventBody(name, body);
185
+ }
181
186
  }
182
187
 
183
188
  @end
@@ -17,7 +17,8 @@ class IOSAudioPlayer {
17
17
  public:
18
18
  IOSAudioPlayer(
19
19
  const std::function<void(std::shared_ptr<AudioBus>, int)> &renderAudio,
20
- float sampleRate);
20
+ float sampleRate,
21
+ int channelCount);
21
22
  ~IOSAudioPlayer();
22
23
 
23
24
  void start();
@@ -8,8 +8,11 @@
8
8
 
9
9
  namespace audioapi {
10
10
 
11
- IOSAudioPlayer::IOSAudioPlayer(const std::function<void(std::shared_ptr<AudioBus>, int)> &renderAudio, float sampleRate)
12
- : channelCount_(2), renderAudio_(renderAudio), audioBus_(0), isRunning_(false)
11
+ IOSAudioPlayer::IOSAudioPlayer(
12
+ const std::function<void(std::shared_ptr<AudioBus>, int)> &renderAudio,
13
+ float sampleRate,
14
+ int channelCount)
15
+ : renderAudio_(renderAudio), channelCount_(channelCount), audioBus_(0), isRunning_(false)
13
16
  {
14
17
  RenderAudioBlock renderAudioBlock = ^(AudioBufferList *outputData, int numFrames) {
15
18
  int processedFrames = 0;
@@ -26,7 +26,11 @@
26
26
  options:(NSArray *)options
27
27
  allowHaptics:(BOOL)allowHaptics;
28
28
  - (bool)setActive:(bool)active;
29
+
29
30
  - (void)requestRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
30
31
  - (void)checkRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
31
32
 
33
+ - (void)getDevicesInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
34
+ - (NSArray<NSDictionary *> *)parseDeviceList:(NSArray<AVAudioSessionPortDescription *> *)devices;
35
+
32
36
  @end
@@ -292,4 +292,30 @@
292
292
  }
293
293
  }
294
294
 
295
+ - (void)getDevicesInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
296
+ {
297
+ NSMutableDictionary *devicesInfo = [[NSMutableDictionary alloc] init];
298
+
299
+ [devicesInfo setValue:[self parseDeviceList:[self.audioSession availableInputs]] forKey:@"availableInputs"];
300
+ [devicesInfo setValue:[self parseDeviceList:[[self.audioSession currentRoute] inputs]] forKey:@"currentInputs"];
301
+ [devicesInfo setValue:[self parseDeviceList:[[self.audioSession currentRoute] outputs]] forKey:@"availableOutputs"];
302
+ [devicesInfo setValue:[self parseDeviceList:[[self.audioSession currentRoute] outputs]] forKey:@"currentOutputs"];
303
+
304
+ resolve(devicesInfo);
305
+ }
306
+
307
+ - (NSArray<NSDictionary *> *)parseDeviceList:(NSArray<AVAudioSessionPortDescription *> *)devices
308
+ {
309
+ NSMutableArray<NSDictionary *> *deviceList = [[NSMutableArray alloc] init];
310
+
311
+ for (AVAudioSessionPortDescription *device in devices) {
312
+ [deviceList addObject:@{
313
+ @"name" : device.portName,
314
+ @"category" : device.portType,
315
+ }];
316
+ }
317
+
318
+ return deviceList;
319
+ }
320
+
295
321
  @end
@@ -189,8 +189,10 @@
189
189
  } else if ([name isEqual:@"remotePreviousTrack"]) {
190
190
  [self enableCommand:remoteCenter.previousTrackCommand withSelector:@selector(onPreviousTrack:) enabled:enabled];
191
191
  } else if ([name isEqual:@"remoteSkipForward"]) {
192
+ remoteCenter.skipForwardCommand.preferredIntervals = @[ @15 ];
192
193
  [self enableCommand:remoteCenter.skipForwardCommand withSelector:@selector(onSkipForward:) enabled:enabled];
193
194
  } else if ([name isEqual:@"remoteSkipBackward"]) {
195
+ remoteCenter.skipBackwardCommand.preferredIntervals = @[ @15 ];
194
196
  [self enableCommand:remoteCenter.skipBackwardCommand withSelector:@selector(onSkipBackward:) enabled:enabled];
195
197
  } else if ([name isEqual:@"remoteSeekForward"]) {
196
198
  [self enableCommand:remoteCenter.seekForwardCommand withSelector:@selector(onSeekForward:) enabled:enabled];
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
8
7
  var _AudioParam = _interopRequireDefault(require("./AudioParam"));
8
+ var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  class AudioBufferBaseSourceNode extends _AudioScheduledSourceNode.default {
11
11
  constructor(context, node) {
@@ -13,20 +13,24 @@ class AudioBufferBaseSourceNode extends _AudioScheduledSourceNode.default {
13
13
  this.detune = new _AudioParam.default(node.detune, context);
14
14
  this.playbackRate = new _AudioParam.default(node.playbackRate, context);
15
15
  }
16
-
17
- // eslint-disable-next-line accessor-pairs
16
+ get onPositionChanged() {
17
+ return this.positionChangedCallback;
18
+ }
18
19
  set onPositionChanged(callback) {
19
20
  if (!callback) {
21
+ this.node.onPositionChanged = '0';
20
22
  this.positionChangedSubscription?.remove();
21
23
  this.positionChangedSubscription = undefined;
22
- this.node.onPositionChanged = '0';
24
+ this.positionChangedCallback = undefined;
23
25
  return;
24
26
  }
27
+ this.positionChangedCallback = callback;
25
28
  this.positionChangedSubscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
26
29
  this.node.onPositionChanged = this.positionChangedSubscription.subscriptionId;
27
30
  }
28
-
29
- // eslint-disable-next-line accessor-pairs
31
+ get onPositionChangedInterval() {
32
+ return this.node.onPositionChangedInterval;
33
+ }
30
34
  set onPositionChangedInterval(value) {
31
35
  this.node.onPositionChangedInterval = value;
32
36
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","e","__esModule","default","AudioBufferBaseSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","onPositionChanged","callback","positionChangedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIvB,MAAMG,yBAAyB,SAASC,iCAAwB,CAAC;EAK9EC,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIC,mBAAU,CAACF,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAID,mBAAU,CAACF,IAAI,CAACG,YAAY,EAAEJ,OAAO,CAAC;EAChE;;EAEA;EACA,IAAWK,iBAAiBA,CAC1BC,QAAsD,EACtD;IACA,IAAI,CAACA,QAAQ,EAAE;MACb,IAAI,CAACC,2BAA2B,EAAEC,MAAM,CAAC,CAAC;MAC1C,IAAI,CAACD,2BAA2B,GAAGE,SAAS;MAC3C,IAAI,CAACR,IAAI,CAAgCI,iBAAiB,GAAG,GAAG;MACjE;IACF;IACA,IAAI,CAACE,2BAA2B,GAC9B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,iBAAiB,EAAEL,QAAQ,CAAC;IAE1E,IAAI,CAACL,IAAI,CAAgCI,iBAAiB,GACzD,IAAI,CAACE,2BAA2B,CAACK,cAAc;EACnD;;EAEA;EACA,IAAWC,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACb,IAAI,CAAgCY,yBAAyB,GAAGC,KAAK;EAC7E;AACF;AAACC,OAAA,CAAAnB,OAAA,GAAAC,yBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioParam","_interopRequireDefault","require","_AudioScheduledSourceNode","e","__esModule","default","AudioBufferBaseSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","onPositionChanged","positionChangedCallback","callback","positionChangedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnD,MAAMG,yBAAyB,SAASC,iCAAwB,CAAC;EAM9EC,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIC,mBAAU,CAACF,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAID,mBAAU,CAACF,IAAI,CAACG,YAAY,EAAEJ,OAAO,CAAC;EAChE;EAEA,IAAWK,iBAAiBA,CAAA,EAEd;IACZ,OAAO,IAAI,CAACC,uBAAuB;EACrC;EAEA,IAAWD,iBAAiBA,CAC1BE,QAAsD,EACtD;IACA,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACN,IAAI,CAAgCI,iBAAiB,GAAG,GAAG;MACjE,IAAI,CAACG,2BAA2B,EAAEC,MAAM,CAAC,CAAC;MAC1C,IAAI,CAACD,2BAA2B,GAAGE,SAAS;MAC5C,IAAI,CAACJ,uBAAuB,GAAGI,SAAS;MAExC;IACF;IAEA,IAAI,CAACJ,uBAAuB,GAAGC,QAAQ;IACvC,IAAI,CAACC,2BAA2B,GAC9B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,iBAAiB,EAAEL,QAAQ,CAAC;IAE1E,IAAI,CAACN,IAAI,CAAgCI,iBAAiB,GACzD,IAAI,CAACG,2BAA2B,CAACK,cAAc;EACnD;EAEA,IAAWC,yBAAyBA,CAAA,EAAW;IAC7C,OAAQ,IAAI,CAACb,IAAI,CAAgCa,yBAAyB;EAC5E;EAEA,IAAWA,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACd,IAAI,CAAgCa,yBAAyB,GAAGC,KAAK;EAC7E;AACF;AAACC,OAAA,CAAApB,OAAA,GAAAC,yBAAA","ignoreList":[]}
@@ -18,10 +18,10 @@ class AudioBufferSourceNode extends _AudioBufferBaseSourceNode.default {
18
18
  }
19
19
  set buffer(buffer) {
20
20
  if (!buffer) {
21
- this.node.setBuffer(this.node, null);
21
+ this.node.setBuffer(null);
22
22
  return;
23
23
  }
24
- this.node.setBuffer(this.node, buffer.buffer);
24
+ this.node.setBuffer(buffer.buffer);
25
25
  }
26
26
  get loopSkip() {
27
27
  return this.node.loopSkip;
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","buffer","node","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAA0D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C,MAAMG,qBAAqB,SAASC,kCAAyB,CAAC;EAC3E,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIE,oBAAW,CAACF,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BE,SAAS,CAC7C,IAAI,CAACF,IAAI,EACT,IACF,CAAC;MACD;IACF;IAEC,IAAI,CAACA,IAAI,CAA4BE,SAAS,CAC7C,IAAI,CAACF,IAAI,EACTD,MAAM,CAACA,MACT,CAAC;EACH;EAEA,IAAWI,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACH,IAAI,CAA4BG,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BG,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACL,IAAI,CAA4BK,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACJ,IAAI,CAA4BK,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BM,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAA4BO,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACJ,IAAI,CAA4BO,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIG,kBAAU,CAClB,8CAA8CH,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIE,kBAAU,CAClB,gDAAgDF,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIC,kBAAU,CAClB,kDAAkDD,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACE,cAAc,EAAE;MACvB,MAAM,IAAIC,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACD,cAAc,GAAG,IAAI;IACzB,IAAI,CAACb,IAAI,CAA4BQ,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF;AAACI,OAAA,CAAAnB,OAAA,GAAAC,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","buffer","node","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAA0D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C,MAAMG,qBAAqB,SAASC,kCAAyB,CAAC;EAC3E,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIE,oBAAW,CAACF,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BE,SAAS,CAAC,IAAI,CAAC;MACrD;IACF;IAEC,IAAI,CAACF,IAAI,CAA4BE,SAAS,CAACH,MAAM,CAACA,MAAM,CAAC;EAChE;EAEA,IAAWI,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACH,IAAI,CAA4BG,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BG,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACL,IAAI,CAA4BK,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACJ,IAAI,CAA4BK,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BM,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAA4BO,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACJ,IAAI,CAA4BO,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIG,kBAAU,CAClB,8CAA8CH,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIE,kBAAU,CAClB,gDAAgDF,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIC,kBAAU,CAClB,kDAAkDD,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACE,cAAc,EAAE;MACvB,MAAM,IAAIC,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACD,cAAc,GAAG,IAAI;IACzB,IAAI,CAACb,IAAI,CAA4BQ,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF;AAACI,OAAA,CAAAnB,OAAA,GAAAC,qBAAA","ignoreList":[]}
@@ -30,16 +30,20 @@ class AudioScheduledSourceNode extends _AudioNode.default {
30
30
  }
31
31
  this.node.stop(when);
32
32
  }
33
-
34
- // eslint-disable-next-line accessor-pairs
35
- set onended(callback) {
33
+ get onEnded() {
34
+ return this.onEndedCallback;
35
+ }
36
+ set onEnded(callback) {
36
37
  if (!callback) {
38
+ this.node.onEnded = '0';
37
39
  this.onendedSubscription?.remove();
38
40
  this.onendedSubscription = undefined;
41
+ this.onEndedCallback = undefined;
39
42
  return;
40
43
  }
44
+ this.onEndedCallback = callback;
41
45
  this.onendedSubscription = this.audioEventEmitter.addAudioEventListener('ended', callback);
42
- this.node.onended = this.onendedSubscription.subscriptionId;
46
+ this.node.onEnded = this.onendedSubscription.subscriptionId;
43
47
  }
44
48
  }
45
49
  exports.default = AudioScheduledSourceNode;
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioNode","_interopRequireDefault","require","_errors","_events","e","__esModule","default","AudioScheduledSourceNode","AudioNode","hasBeenStarted","audioEventEmitter","AudioEventEmitter","global","start","when","RangeError","InvalidStateError","node","stop","onended","callback","onendedSubscription","remove","undefined","addAudioEventListener","subscriptionId","exports"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAAsE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvD,MAAMG,wBAAwB,SAASC,kBAAS,CAAC;EACpDC,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIC,yBAAiB,CAC1DC,MAAM,CAACD,iBACT,CAAC;EAIME,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACL,cAAc,EAAE;MACvB,MAAM,IAAIO,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACP,cAAc,GAAG,IAAI;IACzB,IAAI,CAACQ,IAAI,CAA+BJ,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOI,IAAIA,CAACJ,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACL,cAAc,EAAE;MACxB,MAAM,IAAIO,yBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACC,IAAI,CAA+BC,IAAI,CAACJ,IAAI,CAAC;EACrD;;EAEA;EACA,IAAWK,OAAOA,CAACC,QAAkD,EAAE;IACrE,IAAI,CAACA,QAAQ,EAAE;MACb,IAAI,CAACC,mBAAmB,EAAEC,MAAM,CAAC,CAAC;MAClC,IAAI,CAACD,mBAAmB,GAAGE,SAAS;MACpC;IACF;IACA,IAAI,CAACF,mBAAmB,GAAG,IAAI,CAACX,iBAAiB,CAACc,qBAAqB,CACrE,OAAO,EACPJ,QACF,CAAC;IAEA,IAAI,CAACH,IAAI,CAA+BE,OAAO,GAC9C,IAAI,CAACE,mBAAmB,CAACI,cAAc;EAC3C;AACF;AAACC,OAAA,CAAApB,OAAA,GAAAC,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioNode","_interopRequireDefault","require","_errors","_events","e","__esModule","default","AudioScheduledSourceNode","AudioNode","hasBeenStarted","audioEventEmitter","AudioEventEmitter","global","start","when","RangeError","InvalidStateError","node","stop","onEnded","onEndedCallback","callback","onendedSubscription","remove","undefined","addAudioEventListener","subscriptionId","exports"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAAsE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvD,MAAMG,wBAAwB,SAASC,kBAAS,CAAC;EACpDC,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIC,yBAAiB,CAC1DC,MAAM,CAACD,iBACT,CAAC;EAKME,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACL,cAAc,EAAE;MACvB,MAAM,IAAIO,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACP,cAAc,GAAG,IAAI;IACzB,IAAI,CAACQ,IAAI,CAA+BJ,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOI,IAAIA,CAACJ,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACL,cAAc,EAAE;MACxB,MAAM,IAAIO,yBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACC,IAAI,CAA+BC,IAAI,CAACJ,IAAI,CAAC;EACrD;EAEA,IAAWK,OAAOA,CAAA,EAAkD;IAClE,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEA,IAAWD,OAAOA,CAACE,QAAkD,EAAE;IACrE,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAAG,GAAG;MACtD,IAAI,CAACG,mBAAmB,EAAEC,MAAM,CAAC,CAAC;MAClC,IAAI,CAACD,mBAAmB,GAAGE,SAAS;MACpC,IAAI,CAACJ,eAAe,GAAGI,SAAS;MAChC;IACF;IAEA,IAAI,CAACJ,eAAe,GAAGC,QAAQ;IAC/B,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACZ,iBAAiB,CAACe,qBAAqB,CACrE,OAAO,EACPJ,QACF,CAAC;IAEA,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAC9C,IAAI,CAACG,mBAAmB,CAACI,cAAc;EAC3C;AACF;AAACC,OAAA,CAAArB,OAAA,GAAAC,wBAAA","ignoreList":[]}
@@ -9,7 +9,7 @@ const pkg = require('react-native-audio-api/package.json');
9
9
  const withDefaultOptions = options => {
10
10
  return {
11
11
  iosBackgroundMode: true,
12
- androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.WAKE_LOCK'],
12
+ androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK'],
13
13
  androidForegroundService: true,
14
14
  androidFSTypes: ['mediaPlayback'],
15
15
  ...options
@@ -1 +1 @@
1
- {"version":3,"names":["_configPlugins","require","pkg","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","withInfoPlist","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","AndroidConfig","Permissions","withPermissions","withForegroundService","withAndroidManifest","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","_default","exports","default","createRunOncePlugin","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAOA,MAAMC,GAAG,GAAGD,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAME,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,8BAA8B,CAC/B;IACDC,wBAAwB,EAAE,IAAI;IAC9BC,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,GAAGJ;EACL,CAAC;AACH,CAAC;AAED,MAAMK,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAO,IAAAC,4BAAa,EAACD,MAAM,EAAGE,SAAS,IAAK;IAC1CA,SAAS,CAACC,UAAU,CAACC,iBAAiB,GAAG,CACvC,GAAGC,KAAK,CAACC,IAAI,CACX,IAAIC,GAAG,CAAC,CAAC,IAAIL,SAAS,CAACC,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC,CACF;IAED,OAAOF,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,sBAA6C,GAAGA,CACpDR,MAAM,EACN;EAAEJ;AAA4B,CAAC,KAC5B;EACH,OAAOa,4BAAa,CAACC,WAAW,CAACC,eAAe,CAACX,MAAM,EAAEJ,kBAAkB,CAAC;AAC9E,CAAC;AAED,MAAMgB,qBAA4C,GAAGA,CACnDZ,MAAM,EACN;EAAEF;AAAwB,CAAC,KACxB;EACH,OAAO,IAAAe,kCAAmB,EAACb,MAAM,EAAGc,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACX,UAAU;IAC/B,MAAMa,eAAe,GACnBP,4BAAa,CAACQ,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGrB,cAAc,CAACsB,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,cAAc,GAAG;MACrBC,CAAC,EAAE;QACD,cAAc,EACZ,4EAA4E;QAC9E,sBAAsB,EAAE,MAAM;QAC9B,+BAA+B,EAAEH;MACnC,CAAC;MACDI,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAACP,eAAe,CAACQ,OAAO,EAAE;MAC5BR,eAAe,CAACQ,OAAO,GAAG,EAAE;IAC9B;IAEAR,eAAe,CAACQ,OAAO,CAACC,IAAI,CAACJ,cAAc,CAAC;IAE5C,OAAOP,GAAG;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,MAAMY,YAAmC,GAAGA,CAAC1B,MAAM,EAAE2B,SAAS,KAAK;EACjE,MAAMjC,OAAO,GAAGD,kBAAkB,CAACkC,SAAS,IAAI,CAAC,CAAC,CAAC;EAEnD,IAAIjC,OAAO,CAACC,iBAAiB,EAAE;IAC7BK,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EAEAA,MAAM,GAAGQ,sBAAsB,CAACR,MAAM,EAAEN,OAAO,CAAC;EAEhD,IAAIA,OAAO,CAACG,wBAAwB,EAAE;IACpCG,MAAM,GAAGY,qBAAqB,CAACZ,MAAM,EAAEN,OAAO,CAAC;EACjD;EAEA,OAAOM,MAAM;AACf,CAAC;AAAC,IAAA4B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa,IAAAC,kCAAmB,EAACL,YAAY,EAAElC,GAAG,CAACwC,IAAI,EAAExC,GAAG,CAACyC,OAAO,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_configPlugins","require","pkg","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","withInfoPlist","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","AndroidConfig","Permissions","withPermissions","withForegroundService","withAndroidManifest","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","_default","exports","default","createRunOncePlugin","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAOA,MAAMC,GAAG,GAAGD,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAME,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,sDAAsD,CACvD;IACDC,wBAAwB,EAAE,IAAI;IAC9BC,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,GAAGJ;EACL,CAAC;AACH,CAAC;AAED,MAAMK,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAO,IAAAC,4BAAa,EAACD,MAAM,EAAGE,SAAS,IAAK;IAC1CA,SAAS,CAACC,UAAU,CAACC,iBAAiB,GAAG,CACvC,GAAGC,KAAK,CAACC,IAAI,CACX,IAAIC,GAAG,CAAC,CAAC,IAAIL,SAAS,CAACC,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC,CACF;IAED,OAAOF,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,sBAA6C,GAAGA,CACpDR,MAAM,EACN;EAAEJ;AAA4B,CAAC,KAC5B;EACH,OAAOa,4BAAa,CAACC,WAAW,CAACC,eAAe,CAACX,MAAM,EAAEJ,kBAAkB,CAAC;AAC9E,CAAC;AAED,MAAMgB,qBAA4C,GAAGA,CACnDZ,MAAM,EACN;EAAEF;AAAwB,CAAC,KACxB;EACH,OAAO,IAAAe,kCAAmB,EAACb,MAAM,EAAGc,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACX,UAAU;IAC/B,MAAMa,eAAe,GACnBP,4BAAa,CAACQ,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGrB,cAAc,CAACsB,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,cAAc,GAAG;MACrBC,CAAC,EAAE;QACD,cAAc,EACZ,4EAA4E;QAC9E,sBAAsB,EAAE,MAAM;QAC9B,+BAA+B,EAAEH;MACnC,CAAC;MACDI,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAACP,eAAe,CAACQ,OAAO,EAAE;MAC5BR,eAAe,CAACQ,OAAO,GAAG,EAAE;IAC9B;IAEAR,eAAe,CAACQ,OAAO,CAACC,IAAI,CAACJ,cAAc,CAAC;IAE5C,OAAOP,GAAG;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,MAAMY,YAAmC,GAAGA,CAAC1B,MAAM,EAAE2B,SAAS,KAAK;EACjE,MAAMjC,OAAO,GAAGD,kBAAkB,CAACkC,SAAS,IAAI,CAAC,CAAC,CAAC;EAEnD,IAAIjC,OAAO,CAACC,iBAAiB,EAAE;IAC7BK,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EAEAA,MAAM,GAAGQ,sBAAsB,CAACR,MAAM,EAAEN,OAAO,CAAC;EAEhD,IAAIA,OAAO,CAACG,wBAAwB,EAAE;IACpCG,MAAM,GAAGY,qBAAqB,CAACZ,MAAM,EAAEN,OAAO,CAAC;EACjD;EAEA,OAAOM,MAAM;AACf,CAAC;AAAC,IAAA4B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa,IAAAC,kCAAmB,EAACL,YAAY,EAAElC,GAAG,CAACwC,IAAI,EAAExC,GAAG,CAACyC,OAAO,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AACb,IAAAC,YAAA,GAAAC,OAAA;AAiCA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AACb,IAAAC,YAAA,GAAAC,OAAA;AAoCA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
@@ -49,6 +49,9 @@ class AudioManager {
49
49
  async checkRecordingPermissions() {
50
50
  return _specs.NativeAudioAPIModule.checkRecordingPermissions();
51
51
  }
52
+ async getDevicesInfo() {
53
+ return _specs.NativeAudioAPIModule.getDevicesInfo();
54
+ }
52
55
  }
53
56
  var _default = exports.default = new AudioManager();
54
57
  //# sourceMappingURL=AudioManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,MAAM,CAACC,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,yBAAiB,CAACD,MAAM,CAACC,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAON,2BAAoB,CAAEM,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOR,2BAAoB,CAAEO,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CV,2BAAoB,CAAES,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtChB,2BAAoB,CAAEe,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBjB,2BAAoB,CAAEiB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CR,2BAAoB,CAAEkB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCR,2BAAoB,CAAEmB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClER,2BAAoB,CAAEoB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOzB,2BAAoB,CAAEyB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO1B,2BAAoB,CAAE0B,yBAAyB,CAAC,CAAC;EAC1D;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAI1B,YAAY,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAWA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,MAAM,CAACC,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,yBAAiB,CAACD,MAAM,CAACC,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAON,2BAAoB,CAAEM,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOR,2BAAoB,CAAEO,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CV,2BAAoB,CAAES,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtChB,2BAAoB,CAAEe,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBjB,2BAAoB,CAAEiB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CR,2BAAoB,CAAEkB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCR,2BAAoB,CAAEmB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClER,2BAAoB,CAAEoB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOzB,2BAAoB,CAAEyB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO1B,2BAAoB,CAAE0B,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAO3B,2BAAoB,CAAE2B,cAAc,CAAC,CAAC;EAC/C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAI3B,YAAY,CAAC,CAAC","ignoreList":[]}
@@ -1,27 +1,31 @@
1
1
  "use strict";
2
2
 
3
- import AudioScheduledSourceNode from "./AudioScheduledSourceNode.js";
4
3
  import AudioParam from "./AudioParam.js";
4
+ import AudioScheduledSourceNode from "./AudioScheduledSourceNode.js";
5
5
  export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode {
6
6
  constructor(context, node) {
7
7
  super(context, node);
8
8
  this.detune = new AudioParam(node.detune, context);
9
9
  this.playbackRate = new AudioParam(node.playbackRate, context);
10
10
  }
11
-
12
- // eslint-disable-next-line accessor-pairs
11
+ get onPositionChanged() {
12
+ return this.positionChangedCallback;
13
+ }
13
14
  set onPositionChanged(callback) {
14
15
  if (!callback) {
16
+ this.node.onPositionChanged = '0';
15
17
  this.positionChangedSubscription?.remove();
16
18
  this.positionChangedSubscription = undefined;
17
- this.node.onPositionChanged = '0';
19
+ this.positionChangedCallback = undefined;
18
20
  return;
19
21
  }
22
+ this.positionChangedCallback = callback;
20
23
  this.positionChangedSubscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
21
24
  this.node.onPositionChanged = this.positionChangedSubscription.subscriptionId;
22
25
  }
23
-
24
- // eslint-disable-next-line accessor-pairs
26
+ get onPositionChangedInterval() {
27
+ return this.node.onPositionChangedInterval;
28
+ }
25
29
  set onPositionChangedInterval(value) {
26
30
  this.node.onPositionChangedInterval = value;
27
31
  }
@@ -1 +1 @@
1
- {"version":3,"names":["AudioScheduledSourceNode","AudioParam","AudioBufferBaseSourceNode","constructor","context","node","detune","playbackRate","onPositionChanged","callback","positionChangedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;AACA,OAAOA,wBAAwB,MAAM,+BAA4B;AAEjE,OAAOC,UAAU,MAAM,iBAAc;AAIrC,eAAe,MAAMC,yBAAyB,SAASF,wBAAwB,CAAC;EAK9EG,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIL,UAAU,CAACI,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACG,YAAY,GAAG,IAAIN,UAAU,CAACI,IAAI,CAACE,YAAY,EAAEH,OAAO,CAAC;EAChE;;EAEA;EACA,IAAWI,iBAAiBA,CAC1BC,QAAsD,EACtD;IACA,IAAI,CAACA,QAAQ,EAAE;MACb,IAAI,CAACC,2BAA2B,EAAEC,MAAM,CAAC,CAAC;MAC1C,IAAI,CAACD,2BAA2B,GAAGE,SAAS;MAC3C,IAAI,CAACP,IAAI,CAAgCG,iBAAiB,GAAG,GAAG;MACjE;IACF;IACA,IAAI,CAACE,2BAA2B,GAC9B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,iBAAiB,EAAEL,QAAQ,CAAC;IAE1E,IAAI,CAACJ,IAAI,CAAgCG,iBAAiB,GACzD,IAAI,CAACE,2BAA2B,CAACK,cAAc;EACnD;;EAEA;EACA,IAAWC,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACZ,IAAI,CAAgCW,yBAAyB,GAAGC,KAAK;EAC7E;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioParam","AudioScheduledSourceNode","AudioBufferBaseSourceNode","constructor","context","node","detune","playbackRate","onPositionChanged","positionChangedCallback","callback","positionChangedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,iBAAc;AAKrC,OAAOC,wBAAwB,MAAM,+BAA4B;AAEjE,eAAe,MAAMC,yBAAyB,SAASD,wBAAwB,CAAC;EAM9EE,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIN,UAAU,CAACK,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACG,YAAY,GAAG,IAAIP,UAAU,CAACK,IAAI,CAACE,YAAY,EAAEH,OAAO,CAAC;EAChE;EAEA,IAAWI,iBAAiBA,CAAA,EAEd;IACZ,OAAO,IAAI,CAACC,uBAAuB;EACrC;EAEA,IAAWD,iBAAiBA,CAC1BE,QAAsD,EACtD;IACA,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACL,IAAI,CAAgCG,iBAAiB,GAAG,GAAG;MACjE,IAAI,CAACG,2BAA2B,EAAEC,MAAM,CAAC,CAAC;MAC1C,IAAI,CAACD,2BAA2B,GAAGE,SAAS;MAC5C,IAAI,CAACJ,uBAAuB,GAAGI,SAAS;MAExC;IACF;IAEA,IAAI,CAACJ,uBAAuB,GAAGC,QAAQ;IACvC,IAAI,CAACC,2BAA2B,GAC9B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,iBAAiB,EAAEL,QAAQ,CAAC;IAE1E,IAAI,CAACL,IAAI,CAAgCG,iBAAiB,GACzD,IAAI,CAACG,2BAA2B,CAACK,cAAc;EACnD;EAEA,IAAWC,yBAAyBA,CAAA,EAAW;IAC7C,OAAQ,IAAI,CAACZ,IAAI,CAAgCY,yBAAyB;EAC5E;EAEA,IAAWA,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACb,IAAI,CAAgCY,yBAAyB,GAAGC,KAAK;EAC7E;AACF","ignoreList":[]}
@@ -13,10 +13,10 @@ export default class AudioBufferSourceNode extends AudioBufferBaseSourceNode {
13
13
  }
14
14
  set buffer(buffer) {
15
15
  if (!buffer) {
16
- this.node.setBuffer(this.node, null);
16
+ this.node.setBuffer(null);
17
17
  return;
18
18
  }
19
- this.node.setBuffer(this.node, buffer.buffer);
19
+ this.node.setBuffer(buffer.buffer);
20
20
  }
21
21
  get loopSkip() {
22
22
  return this.node.loopSkip;
@@ -1 +1 @@
1
- {"version":3,"names":["AudioBufferBaseSourceNode","AudioBuffer","InvalidStateError","RangeError","AudioBufferSourceNode","buffer","node","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;AACA,OAAOA,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,qBAAqB,SAASJ,yBAAyB,CAAC;EAC3E,IAAWK,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIJ,WAAW,CAACI,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BC,SAAS,CAC7C,IAAI,CAACD,IAAI,EACT,IACF,CAAC;MACD;IACF;IAEC,IAAI,CAACA,IAAI,CAA4BC,SAAS,CAC7C,IAAI,CAACD,IAAI,EACTD,MAAM,CAACA,MACT,CAAC;EACH;EAEA,IAAWG,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACF,IAAI,CAA4BE,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACH,IAAI,CAA4BE,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACJ,IAAI,CAA4BI,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACH,IAAI,CAA4BI,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACL,IAAI,CAA4BK,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACH,IAAI,CAA4BK,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACH,IAAI,CAA4BM,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIX,UAAU,CAClB,8CAA8CW,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIZ,UAAU,CAClB,gDAAgDY,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIb,UAAU,CAClB,kDAAkDa,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,MAAM,IAAIf,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACe,cAAc,GAAG,IAAI;IACzB,IAAI,CAACX,IAAI,CAA4BO,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioBufferBaseSourceNode","AudioBuffer","InvalidStateError","RangeError","AudioBufferSourceNode","buffer","node","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;AACA,OAAOA,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,qBAAqB,SAASJ,yBAAyB,CAAC;EAC3E,IAAWK,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIJ,WAAW,CAACI,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BC,SAAS,CAAC,IAAI,CAAC;MACrD;IACF;IAEC,IAAI,CAACD,IAAI,CAA4BC,SAAS,CAACF,MAAM,CAACA,MAAM,CAAC;EAChE;EAEA,IAAWG,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACF,IAAI,CAA4BE,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACH,IAAI,CAA4BE,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACJ,IAAI,CAA4BI,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACH,IAAI,CAA4BI,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACL,IAAI,CAA4BK,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACH,IAAI,CAA4BK,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACH,IAAI,CAA4BM,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIX,UAAU,CAClB,8CAA8CW,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIZ,UAAU,CAClB,gDAAgDY,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIb,UAAU,CAClB,kDAAkDa,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,MAAM,IAAIf,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACe,cAAc,GAAG,IAAI;IACzB,IAAI,CAACX,IAAI,CAA4BO,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF","ignoreList":[]}
@@ -25,16 +25,20 @@ export default class AudioScheduledSourceNode extends AudioNode {
25
25
  }
26
26
  this.node.stop(when);
27
27
  }
28
-
29
- // eslint-disable-next-line accessor-pairs
30
- set onended(callback) {
28
+ get onEnded() {
29
+ return this.onEndedCallback;
30
+ }
31
+ set onEnded(callback) {
31
32
  if (!callback) {
33
+ this.node.onEnded = '0';
32
34
  this.onendedSubscription?.remove();
33
35
  this.onendedSubscription = undefined;
36
+ this.onEndedCallback = undefined;
34
37
  return;
35
38
  }
39
+ this.onEndedCallback = callback;
36
40
  this.onendedSubscription = this.audioEventEmitter.addAudioEventListener('ended', callback);
37
- this.node.onended = this.onendedSubscription.subscriptionId;
41
+ this.node.onEnded = this.onendedSubscription.subscriptionId;
38
42
  }
39
43
  }
40
44
  //# sourceMappingURL=AudioScheduledSourceNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AudioNode","InvalidStateError","RangeError","AudioEventEmitter","AudioScheduledSourceNode","hasBeenStarted","audioEventEmitter","global","start","when","node","stop","onended","callback","onendedSubscription","remove","undefined","addAudioEventListener","subscriptionId"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,eAAe,MAAMC,wBAAwB,SAASJ,SAAS,CAAC;EACpDK,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIH,iBAAiB,CAC1DI,MAAM,CAACJ,iBACT,CAAC;EAIMK,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACJ,cAAc,EAAE;MACvB,MAAM,IAAIJ,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACI,cAAc,GAAG,IAAI;IACzB,IAAI,CAACK,IAAI,CAA+BF,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOE,IAAIA,CAACF,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACJ,cAAc,EAAE;MACxB,MAAM,IAAIJ,iBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACS,IAAI,CAA+BC,IAAI,CAACF,IAAI,CAAC;EACrD;;EAEA;EACA,IAAWG,OAAOA,CAACC,QAAkD,EAAE;IACrE,IAAI,CAACA,QAAQ,EAAE;MACb,IAAI,CAACC,mBAAmB,EAAEC,MAAM,CAAC,CAAC;MAClC,IAAI,CAACD,mBAAmB,GAAGE,SAAS;MACpC;IACF;IACA,IAAI,CAACF,mBAAmB,GAAG,IAAI,CAACR,iBAAiB,CAACW,qBAAqB,CACrE,OAAO,EACPJ,QACF,CAAC;IAEA,IAAI,CAACH,IAAI,CAA+BE,OAAO,GAC9C,IAAI,CAACE,mBAAmB,CAACI,cAAc;EAC3C;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioNode","InvalidStateError","RangeError","AudioEventEmitter","AudioScheduledSourceNode","hasBeenStarted","audioEventEmitter","global","start","when","node","stop","onEnded","onEndedCallback","callback","onendedSubscription","remove","undefined","addAudioEventListener","subscriptionId"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,eAAe,MAAMC,wBAAwB,SAASJ,SAAS,CAAC;EACpDK,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIH,iBAAiB,CAC1DI,MAAM,CAACJ,iBACT,CAAC;EAKMK,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACJ,cAAc,EAAE;MACvB,MAAM,IAAIJ,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACI,cAAc,GAAG,IAAI;IACzB,IAAI,CAACK,IAAI,CAA+BF,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOE,IAAIA,CAACF,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACJ,cAAc,EAAE;MACxB,MAAM,IAAIJ,iBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACS,IAAI,CAA+BC,IAAI,CAACF,IAAI,CAAC;EACrD;EAEA,IAAWG,OAAOA,CAAA,EAAkD;IAClE,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEA,IAAWD,OAAOA,CAACE,QAAkD,EAAE;IACrE,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAAG,GAAG;MACtD,IAAI,CAACG,mBAAmB,EAAEC,MAAM,CAAC,CAAC;MAClC,IAAI,CAACD,mBAAmB,GAAGE,SAAS;MACpC,IAAI,CAACJ,eAAe,GAAGI,SAAS;MAChC;IACF;IAEA,IAAI,CAACJ,eAAe,GAAGC,QAAQ;IAC/B,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACT,iBAAiB,CAACY,qBAAqB,CACrE,OAAO,EACPJ,QACF,CAAC;IAEA,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAC9C,IAAI,CAACG,mBAAmB,CAACI,cAAc;EAC3C;AACF","ignoreList":[]}
@@ -5,7 +5,7 @@ const pkg = require('react-native-audio-api/package.json');
5
5
  const withDefaultOptions = options => {
6
6
  return {
7
7
  iosBackgroundMode: true,
8
- androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.WAKE_LOCK'],
8
+ androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK'],
9
9
  androidForegroundService: true,
10
10
  androidFSTypes: ['mediaPlayback'],
11
11
  ...options
@@ -1 +1 @@
1
- {"version":3,"names":["AndroidConfig","createRunOncePlugin","withInfoPlist","withAndroidManifest","pkg","require","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","Permissions","withPermissions","withForegroundService","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,mBAAmB,EAEnBC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAC7B,MAAMC,GAAG,GAAGC,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAMC,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,8BAA8B,CAC/B;IACDC,wBAAwB,EAAE,IAAI;IAC9BC,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,GAAGJ;EACL,CAAC;AACH,CAAC;AAED,MAAMK,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAOX,aAAa,CAACW,MAAM,EAAGC,SAAS,IAAK;IAC1CA,SAAS,CAACC,UAAU,CAACC,iBAAiB,GAAG,CACvC,GAAGC,KAAK,CAACC,IAAI,CACX,IAAIC,GAAG,CAAC,CAAC,IAAIL,SAAS,CAACC,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC,CACF;IAED,OAAOF,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,sBAA6C,GAAGA,CACpDP,MAAM,EACN;EAAEJ;AAA4B,CAAC,KAC5B;EACH,OAAOT,aAAa,CAACqB,WAAW,CAACC,eAAe,CAACT,MAAM,EAAEJ,kBAAkB,CAAC;AAC9E,CAAC;AAED,MAAMc,qBAA4C,GAAGA,CACnDV,MAAM,EACN;EAAEF;AAAwB,CAAC,KACxB;EACH,OAAOR,mBAAmB,CAACU,MAAM,EAAGW,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACT,UAAU;IAC/B,MAAMW,eAAe,GACnB1B,aAAa,CAAC2B,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGlB,cAAc,CAACmB,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,cAAc,GAAG;MACrBC,CAAC,EAAE;QACD,cAAc,EACZ,4EAA4E;QAC9E,sBAAsB,EAAE,MAAM;QAC9B,+BAA+B,EAAEH;MACnC,CAAC;MACDI,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAACP,eAAe,CAACQ,OAAO,EAAE;MAC5BR,eAAe,CAACQ,OAAO,GAAG,EAAE;IAC9B;IAEAR,eAAe,CAACQ,OAAO,CAACC,IAAI,CAACJ,cAAc,CAAC;IAE5C,OAAOP,GAAG;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,MAAMY,YAAmC,GAAGA,CAACvB,MAAM,EAAEwB,SAAS,KAAK;EACjE,MAAM9B,OAAO,GAAGD,kBAAkB,CAAC+B,SAAS,IAAI,CAAC,CAAC,CAAC;EAEnD,IAAI9B,OAAO,CAACC,iBAAiB,EAAE;IAC7BK,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EAEAA,MAAM,GAAGO,sBAAsB,CAACP,MAAM,EAAEN,OAAO,CAAC;EAEhD,IAAIA,OAAO,CAACG,wBAAwB,EAAE;IACpCG,MAAM,GAAGU,qBAAqB,CAACV,MAAM,EAAEN,OAAO,CAAC;EACjD;EAEA,OAAOM,MAAM;AACf,CAAC;AAED,eAAeZ,mBAAmB,CAACmC,YAAY,EAAEhC,GAAG,CAACkC,IAAI,EAAElC,GAAG,CAACmC,OAAO,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AndroidConfig","createRunOncePlugin","withInfoPlist","withAndroidManifest","pkg","require","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","Permissions","withPermissions","withForegroundService","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,mBAAmB,EAEnBC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAC7B,MAAMC,GAAG,GAAGC,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAMC,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,sDAAsD,CACvD;IACDC,wBAAwB,EAAE,IAAI;IAC9BC,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,GAAGJ;EACL,CAAC;AACH,CAAC;AAED,MAAMK,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAOX,aAAa,CAACW,MAAM,EAAGC,SAAS,IAAK;IAC1CA,SAAS,CAACC,UAAU,CAACC,iBAAiB,GAAG,CACvC,GAAGC,KAAK,CAACC,IAAI,CACX,IAAIC,GAAG,CAAC,CAAC,IAAIL,SAAS,CAACC,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC,CACF;IAED,OAAOF,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,sBAA6C,GAAGA,CACpDP,MAAM,EACN;EAAEJ;AAA4B,CAAC,KAC5B;EACH,OAAOT,aAAa,CAACqB,WAAW,CAACC,eAAe,CAACT,MAAM,EAAEJ,kBAAkB,CAAC;AAC9E,CAAC;AAED,MAAMc,qBAA4C,GAAGA,CACnDV,MAAM,EACN;EAAEF;AAAwB,CAAC,KACxB;EACH,OAAOR,mBAAmB,CAACU,MAAM,EAAGW,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACT,UAAU;IAC/B,MAAMW,eAAe,GACnB1B,aAAa,CAAC2B,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGlB,cAAc,CAACmB,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,cAAc,GAAG;MACrBC,CAAC,EAAE;QACD,cAAc,EACZ,4EAA4E;QAC9E,sBAAsB,EAAE,MAAM;QAC9B,+BAA+B,EAAEH;MACnC,CAAC;MACDI,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAACP,eAAe,CAACQ,OAAO,EAAE;MAC5BR,eAAe,CAACQ,OAAO,GAAG,EAAE;IAC9B;IAEAR,eAAe,CAACQ,OAAO,CAACC,IAAI,CAACJ,cAAc,CAAC;IAE5C,OAAOP,GAAG;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,MAAMY,YAAmC,GAAGA,CAACvB,MAAM,EAAEwB,SAAS,KAAK;EACjE,MAAM9B,OAAO,GAAGD,kBAAkB,CAAC+B,SAAS,IAAI,CAAC,CAAC,CAAC;EAEnD,IAAI9B,OAAO,CAACC,iBAAiB,EAAE;IAC7BK,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EAEAA,MAAM,GAAGO,sBAAsB,CAACP,MAAM,EAAEN,OAAO,CAAC;EAEhD,IAAIA,OAAO,CAACG,wBAAwB,EAAE;IACpCG,MAAM,GAAGU,qBAAqB,CAACV,MAAM,EAAEN,OAAO,CAAC;EACjD;EAEA,OAAOM,MAAM;AACf,CAAC;AAED,eAAeZ,mBAAmB,CAACmC,YAAY,EAAEhC,GAAG,CAACkC,IAAI,EAAElC,GAAG,CAACmC,OAAO,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;AAiClD,MAAMC,oBAAoB,GAAGD,mBAAmB,CAACE,GAAG,CAAO,gBAAgB,CAAC;AAE5E,SAASD,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;AAoClD,MAAMC,oBAAoB,GAAGD,mBAAmB,CAACE,GAAG,CAAO,gBAAgB,CAAC;AAE5E,SAASD,oBAAoB","ignoreList":[]}
@@ -45,6 +45,9 @@ class AudioManager {
45
45
  async checkRecordingPermissions() {
46
46
  return NativeAudioAPIModule.checkRecordingPermissions();
47
47
  }
48
+ async getDevicesInfo() {
49
+ return NativeAudioAPIModule.getDevicesInfo();
50
+ }
48
51
  }
49
52
  export default new AudioManager();
50
53
  //# sourceMappingURL=AudioManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAMA,SAASA,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,IAAIC,MAAM,CAACD,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACD,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAOR,oBAAoB,CAAEQ,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOV,oBAAoB,CAAES,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CZ,oBAAoB,CAAEW,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtClB,oBAAoB,CAAEiB,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBnB,oBAAoB,CAAEmB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CV,oBAAoB,CAAEoB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCV,oBAAoB,CAAEqB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClEV,oBAAoB,CAAEsB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAO3B,oBAAoB,CAAE2B,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO5B,oBAAoB,CAAE4B,yBAAyB,CAAC,CAAC;EAC1D;AACF;AAEA,eAAe,IAAIvB,YAAY,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAWA,SAASA,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,IAAIC,MAAM,CAACD,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACD,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAOR,oBAAoB,CAAEQ,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOV,oBAAoB,CAAES,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CZ,oBAAoB,CAAEW,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtClB,oBAAoB,CAAEiB,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBnB,oBAAoB,CAAEmB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CV,oBAAoB,CAAEoB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCV,oBAAoB,CAAEqB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClEV,oBAAoB,CAAEsB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAO3B,oBAAoB,CAAE2B,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO5B,oBAAoB,CAAE4B,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAO7B,oBAAoB,CAAE6B,cAAc,CAAC,CAAC;EAC/C;AACF;AAEA,eAAe,IAAIxB,YAAY,CAAC,CAAC","ignoreList":[]}
@@ -1,14 +1,17 @@
1
- import { IAudioBufferBaseSourceNode } from '../interfaces';
2
- import AudioScheduledSourceNode from './AudioScheduledSourceNode';
3
- import BaseAudioContext from './BaseAudioContext';
4
1
  import AudioParam from './AudioParam';
2
+ import BaseAudioContext from './BaseAudioContext';
5
3
  import { EventTypeWithValue } from '../events/types';
4
+ import { IAudioBufferBaseSourceNode } from '../interfaces';
5
+ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
6
6
  export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode {
7
7
  readonly playbackRate: AudioParam;
8
8
  readonly detune: AudioParam;
9
9
  private positionChangedSubscription?;
10
+ private positionChangedCallback?;
10
11
  constructor(context: BaseAudioContext, node: IAudioBufferBaseSourceNode);
12
+ get onPositionChanged(): ((event: EventTypeWithValue) => void) | undefined;
11
13
  set onPositionChanged(callback: ((event: EventTypeWithValue) => void) | null);
14
+ get onPositionChangedInterval(): number;
12
15
  set onPositionChangedInterval(value: number);
13
16
  }
14
17
  //# sourceMappingURL=AudioBufferBaseSourceNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AudioBufferBaseSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferBaseSourceNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,2BAA2B,CAAC,CAAyB;gBAEjD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,0BAA0B;IAQvE,IAAW,iBAAiB,CAC1B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,IAAI,EAavD;IAGD,IAAW,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAEjD;CACF"}
1
+ {"version":3,"file":"AudioBufferBaseSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferBaseSourceNode.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,2BAA2B,CAAC,CAAyB;IAC7D,OAAO,CAAC,uBAAuB,CAAC,CAAsC;gBAE1D,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,0BAA0B;IAOvE,IAAW,iBAAiB,IACxB,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC,GACrC,SAAS,CAEZ;IAED,IAAW,iBAAiB,CAC1B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,IAAI,EAiBvD;IAED,IAAW,yBAAyB,IAAI,MAAM,CAE7C;IAED,IAAW,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAEjD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,yBAAyB;IAC1E,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAMtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAa3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAEM,KAAK,CAAC,IAAI,GAAE,MAAU,EAAE,MAAM,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;CA0B5E"}
1
+ {"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,yBAAyB;IAC1E,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAMtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAO3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAEM,KAAK,CAAC,IAAI,GAAE,MAAU,EAAE,MAAM,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;CA0B5E"}