react-native-audio-api 0.6.1-rc.8 → 0.6.1-rc.9

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 (41) hide show
  1. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +12 -1
  2. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.h +2 -0
  3. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +10 -0
  4. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +6 -1
  5. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +0 -4
  6. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +1 -1
  7. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +2 -1
  8. package/common/cpp/audioapi/HostObjects/AudioContextHostObject.h +10 -0
  9. package/common/cpp/audioapi/core/AudioContext.cpp +30 -5
  10. package/common/cpp/audioapi/core/AudioContext.h +2 -1
  11. package/common/cpp/audioapi/core/AudioParam.cpp +5 -4
  12. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +6 -10
  13. package/ios/audioapi/ios/AudioAPIModule.mm +9 -7
  14. package/ios/audioapi/ios/core/IOSAudioPlayer.h +2 -0
  15. package/ios/audioapi/ios/core/IOSAudioPlayer.mm +16 -0
  16. package/ios/audioapi/ios/core/NativeAudioPlayer.h +4 -0
  17. package/ios/audioapi/ios/core/NativeAudioPlayer.m +15 -0
  18. package/ios/audioapi/ios/system/AudioEngine.h +1 -0
  19. package/ios/audioapi/ios/system/AudioEngine.mm +11 -1
  20. package/lib/commonjs/api.js.map +1 -1
  21. package/lib/commonjs/core/AudioContext.js +2 -2
  22. package/lib/commonjs/core/AudioContext.js.map +1 -1
  23. package/lib/commonjs/web-core/AudioContext.js +5 -3
  24. package/lib/commonjs/web-core/AudioContext.js.map +1 -1
  25. package/lib/module/api.js.map +1 -1
  26. package/lib/module/core/AudioContext.js +2 -2
  27. package/lib/module/core/AudioContext.js.map +1 -1
  28. package/lib/module/web-core/AudioContext.js +5 -3
  29. package/lib/module/web-core/AudioContext.js.map +1 -1
  30. package/lib/typescript/api.d.ts +1 -1
  31. package/lib/typescript/api.d.ts.map +1 -1
  32. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  33. package/lib/typescript/types.d.ts +2 -1
  34. package/lib/typescript/types.d.ts.map +1 -1
  35. package/lib/typescript/web-core/AudioContext.d.ts +1 -1
  36. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/api.ts +4 -1
  39. package/src/core/AudioContext.ts +7 -2
  40. package/src/types.ts +2 -1
  41. package/src/web-core/AudioContext.tsx +7 -3
@@ -34,6 +34,18 @@ void AudioPlayer::start() {
34
34
  }
35
35
 
36
36
  void AudioPlayer::stop() {
37
+ if (mStream_) {
38
+ mStream_->requestStop();
39
+ }
40
+ }
41
+
42
+ void AudioPlayer::resume() {
43
+ if (mStream_) {
44
+ mStream_->requestStart();
45
+ }
46
+ }
47
+
48
+ void AudioPlayer::suspend() {
37
49
  if (mStream_) {
38
50
  mStream_->requestPause();
39
51
  }
@@ -43,7 +55,6 @@ void AudioPlayer::cleanup() {
43
55
  isInitialized_ = false;
44
56
 
45
57
  if (mStream_) {
46
- mStream_->requestStop();
47
58
  mStream_->close();
48
59
  mStream_.reset();
49
60
  }
@@ -20,6 +20,8 @@ class AudioPlayer : public AudioStreamDataCallback {
20
20
 
21
21
  void start();
22
22
  void stop();
23
+ void resume();
24
+ void suspend();
23
25
  void cleanup();
24
26
 
25
27
  DataCallbackResult onAudioReady(
@@ -53,8 +53,10 @@ class AudioAPIModule(
53
53
  return true
54
54
  }
55
55
 
56
+ @Synchronized
56
57
  override fun getDevicePreferredSampleRate(): Double = MediaSessionManager.getDevicePreferredSampleRate()
57
58
 
59
+ @Synchronized
58
60
  override fun setAudioSessionActivity(
59
61
  enabled: Boolean,
60
62
  promise: Promise?,
@@ -62,6 +64,7 @@ class AudioAPIModule(
62
64
  // noting to do here
63
65
  }
64
66
 
67
+ @Synchronized
65
68
  override fun setAudioSessionOptions(
66
69
  category: String?,
67
70
  mode: String?,
@@ -70,14 +73,17 @@ class AudioAPIModule(
70
73
  // noting to do here
71
74
  }
72
75
 
76
+ @Synchronized
73
77
  override fun setLockScreenInfo(info: ReadableMap?) {
74
78
  MediaSessionManager.setLockScreenInfo(info)
75
79
  }
76
80
 
81
+ @Synchronized
77
82
  override fun resetLockScreenInfo() {
78
83
  MediaSessionManager.resetLockScreenInfo()
79
84
  }
80
85
 
86
+ @Synchronized
81
87
  override fun enableRemoteCommand(
82
88
  name: String?,
83
89
  enabled: Boolean,
@@ -85,19 +91,23 @@ class AudioAPIModule(
85
91
  MediaSessionManager.enableRemoteCommand(name!!, enabled)
86
92
  }
87
93
 
94
+ @Synchronized
88
95
  override fun observeAudioInterruptions(enabled: Boolean) {
89
96
  MediaSessionManager.observeAudioInterruptions(enabled)
90
97
  }
91
98
 
99
+ @Synchronized
92
100
  override fun observeVolumeChanges(enabled: Boolean) {
93
101
  MediaSessionManager.observeVolumeChanges(enabled)
94
102
  }
95
103
 
104
+ @Synchronized
96
105
  override fun requestRecordingPermissions(promise: Promise?) {
97
106
  val res = MediaSessionManager.requestRecordingPermissions(currentActivity)
98
107
  promise!!.resolve(res)
99
108
  }
100
109
 
110
+ @Synchronized
101
111
  override fun checkRecordingPermissions(promise: Promise?) {
102
112
  val res = MediaSessionManager.checkRecordingPermissions()
103
113
  promise!!.resolve(res)
@@ -254,7 +254,7 @@ class LockScreenManager(
254
254
  return bitmap
255
255
  }
256
256
 
257
- fun updatePlaybackState(playbackState: Int) {
257
+ private fun updatePlaybackState(playbackState: Int) {
258
258
  isPlaying = playbackState == PlaybackStateCompat.STATE_PLAYING
259
259
 
260
260
  pb.setState(playbackState, elapsedTime, speed)
@@ -289,6 +289,11 @@ class LockScreenManager(
289
289
  if (hasControl(PlaybackStateCompat.ACTION_REWIND)) {
290
290
  controlCount += 1
291
291
  }
292
+
293
+ if (hasControl(PlaybackStateCompat.ACTION_SEEK_TO)) {
294
+ controlCount += 1
295
+ }
296
+
292
297
  val actions = IntArray(controlCount)
293
298
  for (i in actions.indices) {
294
299
  actions[i] = i
@@ -3,7 +3,6 @@ package com.swmansion.audioapi.system
3
3
  import android.content.Intent
4
4
  import android.os.Build
5
5
  import android.support.v4.media.session.MediaSessionCompat
6
- import android.support.v4.media.session.PlaybackStateCompat
7
6
  import androidx.core.app.NotificationManagerCompat
8
7
  import com.swmansion.audioapi.AudioAPIModule
9
8
  import java.lang.ref.WeakReference
@@ -11,15 +10,12 @@ import java.util.HashMap
11
10
 
12
11
  class MediaSessionCallback(
13
12
  private val audioAPIModule: WeakReference<AudioAPIModule>,
14
- private val lockScreenManager: WeakReference<LockScreenManager>,
15
13
  ) : MediaSessionCompat.Callback() {
16
14
  override fun onPlay() {
17
- lockScreenManager.get()?.updatePlaybackState(PlaybackStateCompat.STATE_PLAYING)
18
15
  audioAPIModule.get()?.invokeHandlerWithEventNameAndEventBody("remotePlay", mapOf())
19
16
  }
20
17
 
21
18
  override fun onPause() {
22
- lockScreenManager.get()?.updatePlaybackState(PlaybackStateCompat.STATE_PAUSED)
23
19
  audioAPIModule.get()?.invokeHandlerWithEventNameAndEventBody("remotePause", mapOf())
24
20
  }
25
21
 
@@ -81,7 +81,7 @@ object MediaSessionManager {
81
81
  this.lockScreenManager = LockScreenManager(this.reactContext, WeakReference(this.mediaSession), WeakReference(mediaNotificationManager))
82
82
  this.mediaReceiver =
83
83
  MediaReceiver(this.reactContext, WeakReference(this.mediaSession), WeakReference(mediaNotificationManager), this.audioAPIModule)
84
- this.mediaSession.setCallback(MediaSessionCallback(this.audioAPIModule, WeakReference(this.lockScreenManager)))
84
+ this.mediaSession.setCallback(MediaSessionCallback(this.audioAPIModule))
85
85
 
86
86
  val filter = IntentFilter()
87
87
  filter.addAction(MediaNotificationManager.REMOVE_NOTIFICATION)
@@ -45,7 +45,8 @@ class AudioAPIModuleInstaller {
45
45
  size_t count) -> jsi::Value {
46
46
  std::shared_ptr<AudioContext> audioContext;
47
47
  auto sampleRate = static_cast<float>(args[0].getNumber());
48
- audioContext = std::make_shared<AudioContext>(sampleRate, audioEventHandlerRegistry);
48
+ auto initSuspended = args[1].getBool();
49
+ audioContext = std::make_shared<AudioContext>(sampleRate, initSuspended, audioEventHandlerRegistry);
49
50
 
50
51
  auto audioContextHostObject = std::make_shared<AudioContextHostObject>(
51
52
  audioContext, &runtime, jsCallInvoker);
@@ -45,6 +45,11 @@ class AudioContextHostObject : public BaseAudioContextHostObject {
45
45
  auto audioContext = std::static_pointer_cast<AudioContext>(context_);
46
46
  auto result = audioContext->resume();
47
47
 
48
+ if (!result) {
49
+ promise->reject("Failed to resume audio context because it is already closed.");
50
+ return;
51
+ }
52
+
48
53
  promise->resolve([result](jsi::Runtime &runtime) {
49
54
  return jsi::Value(result);
50
55
  });
@@ -60,6 +65,11 @@ class AudioContextHostObject : public BaseAudioContextHostObject {
60
65
  auto audioContext = std::static_pointer_cast<AudioContext>(context_);
61
66
  auto result = audioContext->suspend();
62
67
 
68
+ if (!result) {
69
+ promise->reject("Failed to suspend audio context because it is already closed.");
70
+ return;
71
+ }
72
+
63
73
  promise->resolve([result](jsi::Runtime &runtime) {
64
74
  return jsi::Value(result);
65
75
  });
@@ -12,6 +12,7 @@
12
12
  namespace audioapi {
13
13
  AudioContext::AudioContext(
14
14
  float sampleRate,
15
+ bool initSuspended,
15
16
  const std::shared_ptr<AudioEventHandlerRegistry> &audioEventHandlerRegistry)
16
17
  : BaseAudioContext(audioEventHandlerRegistry) {
17
18
  #ifdef ANDROID
@@ -24,8 +25,16 @@ AudioContext::AudioContext(
24
25
  sampleRate_ = sampleRate;
25
26
  audioDecoder_ = std::make_shared<AudioDecoder>(sampleRate);
26
27
 
27
- state_ = ContextState::RUNNING;
28
+ if (initSuspended) {
29
+ playerHasBeenStarted_ = false;
30
+ state_ = ContextState::SUSPENDED;
31
+
32
+ return;
33
+ }
34
+
35
+ playerHasBeenStarted_ = true;
28
36
  audioPlayer_->start();
37
+ state_ = ContextState::RUNNING;
29
38
  }
30
39
 
31
40
  AudioContext::~AudioContext() {
@@ -37,27 +46,43 @@ AudioContext::~AudioContext() {
37
46
  void AudioContext::close() {
38
47
  state_ = ContextState::CLOSED;
39
48
 
49
+ audioPlayer_->stop();
40
50
  audioPlayer_->cleanup();
41
51
  nodeManager_->cleanup();
42
52
  }
43
53
 
44
54
  bool AudioContext::resume() {
45
- if (isClosed() || isRunning()) {
55
+ if (isClosed()) {
46
56
  return false;
47
57
  }
48
58
 
59
+ if (isRunning()) {
60
+ return true;
61
+ }
62
+
63
+ if (!playerHasBeenStarted_) {
64
+ playerHasBeenStarted_ = true;
65
+ audioPlayer_->start();
66
+ } else {
67
+ audioPlayer_->resume();
68
+ }
69
+
49
70
  state_ = ContextState::RUNNING;
50
- audioPlayer_->start();
51
71
  return true;
52
72
  }
53
73
 
54
74
  bool AudioContext::suspend() {
55
- if (isClosed() || isSuspended()) {
75
+ if (isClosed()) {
56
76
  return false;
57
77
  }
58
78
 
79
+ if (isSuspended()) {
80
+ return true;
81
+ }
82
+
83
+ audioPlayer_->suspend();
84
+
59
85
  state_ = ContextState::SUSPENDED;
60
- audioPlayer_->stop();
61
86
  return true;
62
87
  }
63
88
 
@@ -14,7 +14,7 @@ class IOSAudioPlayer;
14
14
 
15
15
  class AudioContext : public BaseAudioContext {
16
16
  public:
17
- explicit AudioContext(float sampleRate, const std::shared_ptr<AudioEventHandlerRegistry> &audioEventHandlerRegistry);
17
+ explicit AudioContext(float sampleRate, bool initSuspended, const std::shared_ptr<AudioEventHandlerRegistry> &audioEventHandlerRegistry);
18
18
  ~AudioContext() override;
19
19
 
20
20
  void close();
@@ -27,6 +27,7 @@ class AudioContext : public BaseAudioContext {
27
27
  #else
28
28
  std::shared_ptr<IOSAudioPlayer> audioPlayer_;
29
29
  #endif
30
+ bool playerHasBeenStarted_;
30
31
 
31
32
  std::function<void(std::shared_ptr<AudioBus>, int)> renderAudio();
32
33
  };
@@ -17,10 +17,11 @@ AudioParam::AudioParam(
17
17
  minValue_(minValue),
18
18
  maxValue_(maxValue),
19
19
  context_(context),
20
- audioBus_(std::make_shared<AudioBus>(
21
- RENDER_QUANTUM_SIZE,
22
- 1,
23
- context->getSampleRate())) {
20
+ audioBus_(
21
+ std::make_shared<AudioBus>(
22
+ RENDER_QUANTUM_SIZE,
23
+ 1,
24
+ context->getSampleRate())) {
24
25
  startTime_ = 0;
25
26
  endTime_ = 0;
26
27
  startValue_ = value_;
@@ -152,7 +152,11 @@ void AudioBufferQueueSourceNode::processWithPitchCorrection(
152
152
 
153
153
  playbackRateBus_->zero();
154
154
 
155
- updatePlaybackInfo(processingBus, framesToProcess, startOffset, offsetLength);
155
+ auto framesNeededToStretch =
156
+ static_cast<int>(playbackRate * static_cast<float>(framesToProcess));
157
+
158
+ updatePlaybackInfo(
159
+ playbackRateBus_, framesNeededToStretch, startOffset, offsetLength);
156
160
 
157
161
  if (playbackRate == 0.0f || (!isPlaying() && !isStopScheduled())) {
158
162
  processingBus->zero();
@@ -162,15 +166,7 @@ void AudioBufferQueueSourceNode::processWithPitchCorrection(
162
166
  // Send position changed event
163
167
  sendOnPositionChangedEvent();
164
168
 
165
- auto framesNeededToStretch =
166
- static_cast<int>(playbackRate * static_cast<float>(framesToProcess));
167
- auto stretchedStartOffset =
168
- static_cast<size_t>(static_cast<float>(startOffset) * playbackRate);
169
- auto stretchedOffsetLength =
170
- static_cast<size_t>(static_cast<float>(offsetLength) * playbackRate);
171
-
172
- processWithoutInterpolation(
173
- playbackRateBus_, stretchedStartOffset, stretchedOffsetLength);
169
+ processWithoutInterpolation(playbackRateBus_, startOffset, offsetLength);
174
170
 
175
171
  stretch_->process(
176
172
  playbackRateBus_.get()[0],
@@ -85,8 +85,9 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getDevicePreferredSampleRate)
85
85
  return [self.audioSessionManager getDevicePreferredSampleRate];
86
86
  }
87
87
 
88
- RCT_EXPORT_METHOD(setAudioSessionActivity : (BOOL)enabled resolve : (RCTPromiseResolveBlock)
89
- resolve reject : (RCTPromiseRejectBlock)reject)
88
+ RCT_EXPORT_METHOD(
89
+ setAudioSessionActivity : (BOOL)enabled resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)
90
+ reject)
90
91
  {
91
92
  if ([self.audioSessionManager setActive:enabled]) {
92
93
  resolve(@"true");
@@ -126,15 +127,16 @@ RCT_EXPORT_METHOD(observeVolumeChanges : (BOOL)enabled)
126
127
  [self.notificationManager observeVolumeChanges:(BOOL)enabled];
127
128
  }
128
129
 
129
- RCT_EXPORT_METHOD(requestRecordingPermissions : (nonnull RCTPromiseResolveBlock)
130
- resolve reject : (nonnull RCTPromiseRejectBlock)reject)
130
+ RCT_EXPORT_METHOD(
131
+ requestRecordingPermissions : (nonnull RCTPromiseResolveBlock)resolve reject : (nonnull RCTPromiseRejectBlock)
132
+ reject)
131
133
  {
132
134
  NSString *res = [self.audioSessionManager requestRecordingPermissions];
133
135
  resolve(res);
134
136
  }
135
137
 
136
- RCT_EXPORT_METHOD(checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)
137
- resolve reject : (nonnull RCTPromiseRejectBlock)reject)
138
+ RCT_EXPORT_METHOD(
139
+ checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)resolve reject : (nonnull RCTPromiseRejectBlock)reject)
138
140
  {
139
141
  NSString *res = [self.audioSessionManager checkRecordingPermissions];
140
142
  resolve(res);
@@ -169,7 +171,7 @@ RCT_EXPORT_METHOD(checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)
169
171
  body[stdKey] = EventValue([value doubleValue]);
170
172
  } else if (strcmp(type, @encode(float)) == 0) {
171
173
  body[stdKey] = EventValue([value floatValue]);
172
- } else if (strcmp(type, @encode(BOOL)) == 0) {
174
+ } else {
173
175
  body[stdKey] = EventValue([value boolValue]);
174
176
  }
175
177
  }
@@ -22,6 +22,8 @@ class IOSAudioPlayer {
22
22
 
23
23
  void start();
24
24
  void stop();
25
+ void resume();
26
+ void suspend();
25
27
  void cleanup();
26
28
 
27
29
  protected:
@@ -62,6 +62,22 @@ void IOSAudioPlayer::stop()
62
62
  [audioPlayer_ stop];
63
63
  }
64
64
 
65
+ void IOSAudioPlayer::resume()
66
+ {
67
+ if (isRunning_.load()) {
68
+ return;
69
+ }
70
+
71
+ [audioPlayer_ resume];
72
+ isRunning_.store(true);
73
+ }
74
+
75
+ void IOSAudioPlayer::suspend()
76
+ {
77
+ isRunning_.store(false);
78
+ [audioPlayer_ suspend];
79
+ }
80
+
65
81
  void IOSAudioPlayer::cleanup()
66
82
  {
67
83
  stop();
@@ -23,6 +23,10 @@ typedef void (^RenderAudioBlock)(AudioBufferList *outputBuffer, int numFrames);
23
23
 
24
24
  - (void)stop;
25
25
 
26
+ - (void)resume;
27
+
28
+ - (void)suspend;
29
+
26
30
  - (void)cleanup;
27
31
 
28
32
  @end
@@ -51,6 +51,21 @@
51
51
  self.sourceNodeId = nil;
52
52
  }
53
53
 
54
+ - (void)resume
55
+ {
56
+ NSLog(@"[AudioPlayer] resume");
57
+ AudioEngine *audioEngine = [AudioEngine sharedInstance];
58
+ assert(audioEngine != nil);
59
+ [audioEngine startEngine];
60
+ }
61
+
62
+ - (void)suspend
63
+ {
64
+ AudioEngine *audioEngine = [AudioEngine sharedInstance];
65
+ assert(audioEngine != nil);
66
+ [audioEngine pauseEngine];
67
+ }
68
+
54
69
  - (void)cleanup
55
70
  {
56
71
  self.renderAudio = nil;
@@ -20,6 +20,7 @@
20
20
  - (bool)rebuildAudioEngine;
21
21
  - (void)startEngine;
22
22
  - (void)stopEngine;
23
+ - (void)pauseEngine;
23
24
  - (bool)isRunning;
24
25
 
25
26
  - (NSString *)attachSourceNode:(AVAudioSourceNode *)sourceNode format:(AVAudioFormat *)format;
@@ -20,7 +20,6 @@ static AudioEngine *_sharedInstance = nil;
20
20
  self.sourceFormats = [[NSMutableDictionary alloc] init];
21
21
 
22
22
  self.sessionManager = sessionManager;
23
- [self.sessionManager setActive:true];
24
23
  }
25
24
 
26
25
  _sharedInstance = self;
@@ -76,6 +75,7 @@ static AudioEngine *_sharedInstance = nil;
76
75
  }
77
76
 
78
77
  [self.audioEngine startAndReturnError:&error];
78
+ [self.sessionManager setActive:true];
79
79
 
80
80
  if (error != nil) {
81
81
  NSLog(@"Error while starting the audio engine: %@", [error debugDescription]);
@@ -92,6 +92,16 @@ static AudioEngine *_sharedInstance = nil;
92
92
  [self.audioEngine stop];
93
93
  }
94
94
 
95
+ - (void)pauseEngine
96
+ {
97
+ NSLog(@"[AudioEngine] pauseEngine");
98
+ if (![self.audioEngine isRunning]) {
99
+ return;
100
+ }
101
+
102
+ [self.audioEngine pause];
103
+ }
104
+
95
105
  - (bool)isRunning
96
106
  {
97
107
  return [self.audioEngine isRunning];
@@ -1 +1 @@
1
- {"version":3,"names":["_specs","require","_AudioBuffer","_interopRequireDefault","_AudioBufferSourceNode","_AudioBufferQueueSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_AudioRecorder","_system","_useSytemVolume","_types","_errors","e","__esModule","default","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","NativeAudioAPIModule","Error","install"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAuCA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,2BAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,aAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,oBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,qBAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,UAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,yBAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,iBAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,iBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,SAAA,GAAAZ,sBAAA,CAAAF,OAAA;AACA,IAAAe,eAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,iBAAA,GAAAd,sBAAA,CAAAF,OAAA;AACA,IAAAiB,cAAA,GAAAf,sBAAA,CAAAF,OAAA;AACA,IAAAkB,OAAA,GAAAhB,sBAAA,CAAAF,OAAA;AACA,IAAAmB,eAAA,GAAAjB,sBAAA,CAAAF,OAAA;AAEA,IAAAoB,MAAA,GAAApB,OAAA;AAUA,IAAAqB,OAAA,GAAArB,OAAA;AAMkB,SAAAE,uBAAAoB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAjElB;;AAaA;;AAEA,IACEG,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"names":["_specs","require","_AudioBuffer","_interopRequireDefault","_AudioBufferSourceNode","_AudioBufferQueueSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_AudioRecorder","_system","_useSytemVolume","_types","_errors","e","__esModule","default","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","NativeAudioAPIModule","Error","install"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AA0CA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,2BAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,aAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,oBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,qBAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,UAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,yBAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,iBAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,iBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,SAAA,GAAAZ,sBAAA,CAAAF,OAAA;AACA,IAAAe,eAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,iBAAA,GAAAd,sBAAA,CAAAF,OAAA;AACA,IAAAiB,cAAA,GAAAf,sBAAA,CAAAF,OAAA;AACA,IAAAkB,OAAA,GAAAhB,sBAAA,CAAAF,OAAA;AACA,IAAAmB,eAAA,GAAAjB,sBAAA,CAAAF,OAAA;AAEA,IAAAoB,MAAA,GAAApB,OAAA;AAUA,IAAAqB,OAAA,GAAArB,OAAA;AAMkB,SAAAE,uBAAAoB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AApElB;;AAgBA;;AAEA,IACEG,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
@@ -10,10 +10,10 @@ var _errors = require("../errors");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  class AudioContext extends _BaseAudioContext.default {
12
12
  constructor(options) {
13
- if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
13
+ if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
14
14
  throw new _errors.NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
15
15
  }
16
- super(global.createAudioContext(options?.sampleRate || _system.default.getDevicePreferredSampleRate()));
16
+ super(global.createAudioContext(options?.sampleRate || _system.default.getDevicePreferredSampleRate(), options?.initSuspended || false));
17
17
  }
18
18
  async close() {
19
19
  await this.context.close();
@@ -1 +1 @@
1
- {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_system","_errors","e","__esModule","default","AudioContext","BaseAudioContext","constructor","options","sampleRate","NotSupportedError","global","createAudioContext","AudioManager","getDevicePreferredSampleRate","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;AAA8C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/B,MAAMG,YAAY,SAASC,yBAAgB,CAAC;EACzDC,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAIA,OAAO,KAAKA,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EAAE;MACxE,MAAM,IAAIC,yBAAiB,CACzB,6CAA6CF,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,KAAK,CACHE,MAAM,CAACC,kBAAkB,CACvBJ,OAAO,EAAEC,UAAU,IAAII,eAAY,CAACC,4BAA4B,CAAC,CACnE,CACF,CAAC;EACH;EAEA,MAAMC,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;EAEA,MAAME,MAAMA,CAAA,EAAuB;IACjC,MAAO,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EAChD;EAEA,MAAMC,OAAOA,CAAA,EAAuB;IAClC,MAAO,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EACjD;AACF;AAACC,OAAA,CAAAf,OAAA,GAAAC,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_BaseAudioContext","_interopRequireDefault","require","_system","_errors","e","__esModule","default","AudioContext","BaseAudioContext","constructor","options","sampleRate","NotSupportedError","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;AAA8C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/B,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;IAEA,KAAK,CACHE,MAAM,CAACC,kBAAkB,CACvBJ,OAAO,EAAEC,UAAU,IAAII,eAAY,CAACC,4BAA4B,CAAC,CAAC,EAClEN,OAAO,EAAEO,aAAa,IAAI,KAC5B,CACF,CAAC;EACH;EAEA,MAAMC,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;EAEA,MAAME,MAAMA,CAAA,EAAuB;IACjC,MAAO,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EAChD;EAEA,MAAMC,OAAOA,CAAA,EAAuB;IAClC,MAAO,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EACjD;AACF;AAACC,OAAA,CAAAhB,OAAA,GAAAC,YAAA","ignoreList":[]}
@@ -17,11 +17,13 @@ var _StereoPannerNode = _interopRequireDefault(require("./StereoPannerNode"));
17
17
  var _LoadCustomWasm = require("./custom/LoadCustomWasm");
18
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
19
  class AudioContext {
20
- constructor(options) {
21
- if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
20
+ constructor(options, _initSuspended = false) {
21
+ if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
22
22
  throw new _errors.NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
23
23
  }
24
- this.context = new window.AudioContext(options);
24
+ this.context = new window.AudioContext({
25
+ sampleRate: options?.sampleRate
26
+ });
25
27
  this.sampleRate = this.context.sampleRate;
26
28
  this.destination = new _AudioDestinationNode.default(this, this.context.destination);
27
29
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_LoadCustomWasm","e","__esModule","default","AudioContext","constructor","options","sampleRate","NotSupportedError","context","window","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","globalWasmPromise","wasmStretch","globalTag","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_LoadCustomWasm","e","__esModule","default","AudioContext","constructor","options","_initSuspended","sampleRate","NotSupportedError","context","window","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","globalWasmPromise","wasmStretch","globalTag","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,YAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,sBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,iBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,SAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,eAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,iBAAA,GAAAR,sBAAA,CAAAF,OAAA;AAEA,IAAAW,eAAA,GAAAX,OAAA;AAAuE,SAAAE,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExD,MAAMG,YAAY,CAA6B;EAM5DC,WAAWA,CAACC,OAA6B,EAAEC,cAAuB,GAAG,KAAK,EAAE;IAC1E,IACED,OAAO,IACPA,OAAO,CAACE,UAAU,KACjBF,OAAO,CAACE,UAAU,GAAG,IAAI,IAAIF,OAAO,CAACE,UAAU,GAAG,KAAK,CAAC,EACzD;MACA,MAAM,IAAIC,yBAAiB,CACzB,6CAA6CH,OAAO,CAACE,UAAU,EACjE,CAAC;IACH;IAEA,IAAI,CAACE,OAAO,GAAG,IAAIC,MAAM,CAACP,YAAY,CAAC;MAAEI,UAAU,EAAEF,OAAO,EAAEE;IAAW,CAAC,CAAC;IAE3E,IAAI,CAACA,UAAU,GAAG,IAAI,CAACE,OAAO,CAACF,UAAU;IACzC,IAAI,CAACI,WAAW,GAAG,IAAIC,6BAAoB,CAAC,IAAI,EAAE,IAAI,CAACH,OAAO,CAACE,WAAW,CAAC;EAC7E;EAEA,IAAWE,WAAWA,CAAA,EAAW;IAC/B,OAAO,IAAI,CAACJ,OAAO,CAACI,WAAW;EACjC;EAEA,IAAWC,KAAKA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAACL,OAAO,CAACK,KAAK;EAC3B;EAEAC,gBAAgBA,CAAA,EAAmB;IACjC,OAAO,IAAIC,uBAAc,CAAC,IAAI,EAAE,IAAI,CAACP,OAAO,CAACM,gBAAgB,CAAC,CAAC,CAAC;EAClE;EAEAE,UAAUA,CAAA,EAAa;IACrB,OAAO,IAAIC,iBAAQ,CAAC,IAAI,EAAE,IAAI,CAACT,OAAO,CAACQ,UAAU,CAAC,CAAC,CAAC;EACtD;EAEAE,kBAAkBA,CAAA,EAAqB;IACrC,OAAO,IAAIC,yBAAgB,CAAC,IAAI,EAAE,IAAI,CAACX,OAAO,CAACU,kBAAkB,CAAC,CAAC,CAAC;EACtE;EAEAE,kBAAkBA,CAAA,EAAqB;IACrC,OAAO,IAAIC,yBAAgB,CAAC,IAAI,EAAE,IAAI,CAACb,OAAO,CAACY,kBAAkB,CAAC,CAAC,CAAC;EACtE;EAEA,MAAME,kBAAkBA,CACtBlB,OAAsC,EACN;IAChC,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACmB,eAAe,EAAE;MACxC,OAAO,IAAIC,8BAAqB,CAC9B,IAAI,EACJ,IAAI,CAAChB,OAAO,CAACc,kBAAkB,CAAC,CAAC,EACjC,KACF,CAAC;IACH;IAEA,MAAMG,iCAAiB;IAEvB,MAAMC,WAAW,GAAG,MAAMjB,MAAM,CAACkB,yBAAS,CAAC,CAAC,IAAI,CAACnB,OAAO,CAAC;IAEzD,OAAO,IAAIgB,8BAAqB,CAAC,IAAI,EAAEE,WAAW,EAAE,IAAI,CAAC;EAC3D;EAEAE,YAAYA,CACVC,aAAqB,EACrBC,MAAc,EACdxB,UAAkB,EACL;IACb,IAAIuB,aAAa,GAAG,CAAC,IAAIA,aAAa,IAAI,EAAE,EAAE;MAC5C,MAAM,IAAItB,yBAAiB,CACzB,oCAAoCsB,aAAa,gCACnD,CAAC;IACH;IAEA,IAAIC,MAAM,IAAI,CAAC,EAAE;MACf,MAAM,IAAIvB,yBAAiB,CACzB,kCAAkCuB,MAAM,kDAC1C,CAAC;IACH;IAEA,IAAIxB,UAAU,GAAG,IAAI,IAAIA,UAAU,GAAG,KAAK,EAAE;MAC3C,MAAM,IAAIC,yBAAiB,CACzB,6BAA6BD,UAAU,sCACzC,CAAC;IACH;IAEA,OAAO,IAAIyB,oBAAW,CACpB,IAAI,CAACvB,OAAO,CAACoB,YAAY,CAACC,aAAa,EAAEC,MAAM,EAAExB,UAAU,CAC7D,CAAC;EACH;EAEA0B,kBAAkBA,CAChBC,IAAkB,EAClBC,IAAkB,EAClBC,WAAqC,EACvB;IACd,IAAIF,IAAI,CAACH,MAAM,KAAKI,IAAI,CAACJ,MAAM,EAAE;MAC/B,MAAM,IAAIM,0BAAkB,CAC1B,4BAA4BH,IAAI,CAACH,MAAM,oBAAoBI,IAAI,CAACJ,MAAM,sBACxE,CAAC;IACH;IAEA,OAAO,IAAIO,qBAAY,CACrB,IAAI,CAAC7B,OAAO,CAACwB,kBAAkB,CAACC,IAAI,EAAEC,IAAI,EAAEC,WAAW,CACzD,CAAC;EACH;EAEAG,cAAcA,CAAA,EAAiB;IAC7B,OAAO,IAAIC,qBAAY,CAAC,IAAI,EAAE,IAAI,CAAC/B,OAAO,CAAC8B,cAAc,CAAC,CAAC,CAAC;EAC9D;EAEA,MAAME,qBAAqBA,CAACC,MAAc,EAAwB;IAChE,MAAMC,WAAW,GAAG,MAAMC,KAAK,CAACF,MAAM,CAAC,CAACG,IAAI,CAAEC,QAAQ,IACpDA,QAAQ,CAACH,WAAW,CAAC,CACvB,CAAC;IAED,OAAO,IAAI,CAACI,eAAe,CAACJ,WAAW,CAAC;EAC1C;EAEA,MAAMI,eAAeA,CAACJ,WAAwB,EAAwB;IACpE,OAAO,IAAIX,oBAAW,CAAC,MAAM,IAAI,CAACvB,OAAO,CAACsC,eAAe,CAACJ,WAAW,CAAC,CAAC;EACzE;EAEA,MAAMK,KAAKA,CAAA,EAAkB;IAC3B,MAAM,IAAI,CAACvC,OAAO,CAACuC,KAAK,CAAC,CAAC;EAC5B;EAEA,MAAMC,MAAMA,CAAA,EAAkB;IAC5B,MAAM,IAAI,CAACxC,OAAO,CAACwC,MAAM,CAAC,CAAC;EAC7B;EAEA,MAAMC,OAAOA,CAAA,EAAkB;IAC7B,MAAM,IAAI,CAACzC,OAAO,CAACyC,OAAO,CAAC,CAAC;EAC9B;AACF;AAACC,OAAA,CAAAjD,OAAA,GAAAC,YAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioBufferQueueSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioRecorder","AudioManager","useSystemVolume","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,kBAAS;;AAS9C;;AAaA;;AAEA,IACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACL,oBAAoB,EAAE;IACzB,MAAM,IAAIM,KAAK,CACb,iFACF,CAAC;EACH;EAEAN,oBAAoB,CAACO,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,0BAA0B,QAAQ,sCAAmC;AACzF,SAASH,OAAO,IAAII,YAAY,QAAQ,wBAAqB;AAC7D,SAASJ,OAAO,IAAIK,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASL,OAAO,IAAIM,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASN,OAAO,IAAIO,SAAS,QAAQ,qBAAkB;AACvD,SAASP,OAAO,IAAIQ,YAAY,QAAQ,wBAAqB;AAC7D,SAASR,OAAO,IAAIS,UAAU,QAAQ,sBAAmB;AACzD,SAAST,OAAO,IAAIU,wBAAwB,QAAQ,oCAAiC;AACrF,SAASV,OAAO,IAAIW,gBAAgB,QAAQ,4BAAyB;AACrE,SAASX,OAAO,IAAIY,gBAAgB,QAAQ,4BAAyB;AACrE,SAASZ,OAAO,IAAIa,QAAQ,QAAQ,oBAAiB;AACrD,SAASb,OAAO,IAAIc,cAAc,QAAQ,0BAAuB;AACjE,SAASd,OAAO,IAAIe,gBAAgB,QAAQ,4BAAyB;AACrE,SAASf,OAAO,IAAIgB,aAAa,QAAQ,yBAAsB;AAC/D,SAAShB,OAAO,IAAIiB,YAAY,QAAQ,mBAAU;AAClD,SAASjB,OAAO,IAAIkB,eAAe,QAAQ,2BAAwB;AAEnE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
1
+ {"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioBufferQueueSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioRecorder","AudioManager","useSystemVolume","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,kBAAS;;AAS9C;;AAgBA;;AAEA,IACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACL,oBAAoB,EAAE;IACzB,MAAM,IAAIM,KAAK,CACb,iFACF,CAAC;EACH;EAEAN,oBAAoB,CAACO,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,0BAA0B,QAAQ,sCAAmC;AACzF,SAASH,OAAO,IAAII,YAAY,QAAQ,wBAAqB;AAC7D,SAASJ,OAAO,IAAIK,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASL,OAAO,IAAIM,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASN,OAAO,IAAIO,SAAS,QAAQ,qBAAkB;AACvD,SAASP,OAAO,IAAIQ,YAAY,QAAQ,wBAAqB;AAC7D,SAASR,OAAO,IAAIS,UAAU,QAAQ,sBAAmB;AACzD,SAAST,OAAO,IAAIU,wBAAwB,QAAQ,oCAAiC;AACrF,SAASV,OAAO,IAAIW,gBAAgB,QAAQ,4BAAyB;AACrE,SAASX,OAAO,IAAIY,gBAAgB,QAAQ,4BAAyB;AACrE,SAASZ,OAAO,IAAIa,QAAQ,QAAQ,oBAAiB;AACrD,SAASb,OAAO,IAAIc,cAAc,QAAQ,0BAAuB;AACjE,SAASd,OAAO,IAAIe,gBAAgB,QAAQ,4BAAyB;AACrE,SAASf,OAAO,IAAIgB,aAAa,QAAQ,yBAAsB;AAC/D,SAAShB,OAAO,IAAIiB,YAAY,QAAQ,mBAAU;AAClD,SAASjB,OAAO,IAAIkB,eAAe,QAAQ,2BAAwB;AAEnE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
@@ -5,10 +5,10 @@ import AudioManager from "../system/index.js";
5
5
  import { NotSupportedError } from "../errors/index.js";
6
6
  export default class AudioContext extends BaseAudioContext {
7
7
  constructor(options) {
8
- if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
8
+ if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
9
9
  throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
10
10
  }
11
- super(global.createAudioContext(options?.sampleRate || AudioManager.getDevicePreferredSampleRate()));
11
+ super(global.createAudioContext(options?.sampleRate || AudioManager.getDevicePreferredSampleRate(), options?.initSuspended || false));
12
12
  }
13
13
  async close() {
14
14
  await this.context.close();
@@ -1 +1 @@
1
- {"version":3,"names":["BaseAudioContext","AudioManager","NotSupportedError","AudioContext","constructor","options","sampleRate","global","createAudioContext","getDevicePreferredSampleRate","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,YAAY,MAAM,oBAAW;AAEpC,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,YAAY,SAASH,gBAAgB,CAAC;EACzDI,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAIA,OAAO,KAAKA,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EAAE;MACxE,MAAM,IAAIJ,iBAAiB,CACzB,6CAA6CG,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBH,OAAO,EAAEC,UAAU,IAAIL,YAAY,CAACQ,4BAA4B,CAAC,CACnE,CACF,CAAC;EACH;EAEA,MAAMC,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;EAEA,MAAME,MAAMA,CAAA,EAAuB;IACjC,MAAO,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EAChD;EAEA,MAAMC,OAAOA,CAAA,EAAuB;IAClC,MAAO,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EACjD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["BaseAudioContext","AudioManager","NotSupportedError","AudioContext","constructor","options","sampleRate","global","createAudioContext","getDevicePreferredSampleRate","initSuspended","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,YAAY,MAAM,oBAAW;AAEpC,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,YAAY,SAASH,gBAAgB,CAAC;EACzDI,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,IAAIJ,iBAAiB,CACzB,6CAA6CG,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,KAAK,CACHC,MAAM,CAACC,kBAAkB,CACvBH,OAAO,EAAEC,UAAU,IAAIL,YAAY,CAACQ,4BAA4B,CAAC,CAAC,EAClEJ,OAAO,EAAEK,aAAa,IAAI,KAC5B,CACF,CAAC;EACH;EAEA,MAAMC,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;EAEA,MAAME,MAAMA,CAAA,EAAuB;IACjC,MAAO,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EAChD;EAEA,MAAMC,OAAOA,CAAA,EAAuB;IAClC,MAAO,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EACjD;AACF","ignoreList":[]}
@@ -12,11 +12,13 @@ import PeriodicWave from "./PeriodicWave.js";
12
12
  import StereoPannerNode from "./StereoPannerNode.js";
13
13
  import { globalWasmPromise, globalTag } from "./custom/LoadCustomWasm.js";
14
14
  export default class AudioContext {
15
- constructor(options) {
16
- if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
15
+ constructor(options, _initSuspended = false) {
16
+ if (options && options.sampleRate && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
17
17
  throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
18
18
  }
19
- this.context = new window.AudioContext(options);
19
+ this.context = new window.AudioContext({
20
+ sampleRate: options?.sampleRate
21
+ });
20
22
  this.sampleRate = this.context.sampleRate;
21
23
  this.destination = new AudioDestinationNode(this, this.context.destination);
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"names":["InvalidAccessError","NotSupportedError","AnalyserNode","AudioDestinationNode","AudioBuffer","AudioBufferSourceNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","StereoPannerNode","globalWasmPromise","globalTag","AudioContext","constructor","options","sampleRate","context","window","destination","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","pitchCorrection","wasmStretch","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["InvalidAccessError","NotSupportedError","AnalyserNode","AudioDestinationNode","AudioBuffer","AudioBufferSourceNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","StereoPannerNode","globalWasmPromise","globalTag","AudioContext","constructor","options","_initSuspended","sampleRate","context","window","destination","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","pitchCorrection","wasmStretch","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { AudioRecorderOptions } from './types';
2
2
  import type { IAudioContext, IAudioRecorder, IOfflineAudioContext, IAudioEventEmitter } from './interfaces';
3
3
  declare global {
4
- var createAudioContext: (sampleRate?: number) => IAudioContext;
4
+ var createAudioContext: (sampleRate: number, initSuspended: boolean) => IAudioContext;
5
5
  var createOfflineAudioContext: (numberOfChannels: number, length: number, sampleRate: number) => IOfflineAudioContext;
6
6
  var createAudioRecorder: (options: AudioRecorderOptions) => IAudioRecorder;
7
7
  var AudioEventEmitter: IAudioEventEmitter;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;IAC/D,IAAI,yBAAyB,EAAE,CAC7B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,oBAAoB,CAAC;IAE1B,IAAI,mBAAmB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,cAAc,CAAC;IAE3E,IAAI,iBAAiB,EAAE,kBAAkB,CAAC;CAC3C;AAkBD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,KACnB,aAAa,CAAC;IACnB,IAAI,yBAAyB,EAAE,CAC7B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,oBAAoB,CAAC;IAE1B,IAAI,mBAAmB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,cAAc,CAAC;IAE3E,IAAI,iBAAiB,EAAE,kBAAkB,CAAC;CAC3C;AAkBD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,OAAO,CAAC,EAAE,mBAAmB;IAcnC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;CAGpC"}
1
+ {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,OAAO,CAAC,EAAE,mBAAmB;IAmBnC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;CAGpC"}
@@ -7,7 +7,8 @@ export interface PeriodicWaveConstraints {
7
7
  disableNormalization: boolean;
8
8
  }
9
9
  export interface AudioContextOptions {
10
- sampleRate: number;
10
+ sampleRate?: number;
11
+ initSuspended?: boolean;
11
12
  }
12
13
  export interface OfflineAudioContextOptions {
13
14
  numberOfChannels: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,OAAO,CAAC;CAC1B"}
@@ -13,7 +13,7 @@ export default class AudioContext implements BaseAudioContext {
13
13
  readonly context: globalThis.AudioContext;
14
14
  readonly destination: AudioDestinationNode;
15
15
  readonly sampleRate: number;
16
- constructor(options?: AudioContextOptions);
16
+ constructor(options?: AudioContextOptions, _initSuspended?: boolean);
17
17
  get currentTime(): number;
18
18
  get state(): ContextState;
19
19
  createOscillator(): OscillatorNode;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB,EAAE,cAAc,GAAE,OAAe;IAiB1E,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-audio-api",
3
- "version": "0.6.1-rc.8",
3
+ "version": "0.6.1-rc.9",
4
4
  "description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
5
5
  "bin": {
6
6
  "setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
package/src/api.ts CHANGED
@@ -9,7 +9,10 @@ import type {
9
9
 
10
10
  /* eslint-disable no-var */
11
11
  declare global {
12
- var createAudioContext: (sampleRate?: number) => IAudioContext;
12
+ var createAudioContext: (
13
+ sampleRate: number,
14
+ initSuspended: boolean
15
+ ) => IAudioContext;
13
16
  var createOfflineAudioContext: (
14
17
  numberOfChannels: number,
15
18
  length: number,
@@ -6,7 +6,11 @@ import { NotSupportedError } from '../errors';
6
6
 
7
7
  export default class AudioContext extends BaseAudioContext {
8
8
  constructor(options?: AudioContextOptions) {
9
- if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
9
+ if (
10
+ options &&
11
+ options.sampleRate &&
12
+ (options.sampleRate < 8000 || options.sampleRate > 96000)
13
+ ) {
10
14
  throw new NotSupportedError(
11
15
  `The provided sampleRate is not supported: ${options.sampleRate}`
12
16
  );
@@ -14,7 +18,8 @@ export default class AudioContext extends BaseAudioContext {
14
18
 
15
19
  super(
16
20
  global.createAudioContext(
17
- options?.sampleRate || AudioManager.getDevicePreferredSampleRate()
21
+ options?.sampleRate || AudioManager.getDevicePreferredSampleRate(),
22
+ options?.initSuspended || false
18
23
  )
19
24
  );
20
25
  }
package/src/types.ts CHANGED
@@ -26,7 +26,8 @@ export interface PeriodicWaveConstraints {
26
26
  }
27
27
 
28
28
  export interface AudioContextOptions {
29
- sampleRate: number;
29
+ sampleRate?: number;
30
+ initSuspended?: boolean;
30
31
  }
31
32
 
32
33
  export interface OfflineAudioContextOptions {
@@ -24,14 +24,18 @@ export default class AudioContext implements BaseAudioContext {
24
24
  readonly destination: AudioDestinationNode;
25
25
  readonly sampleRate: number;
26
26
 
27
- constructor(options?: AudioContextOptions) {
28
- if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
27
+ constructor(options?: AudioContextOptions, _initSuspended: boolean = false) {
28
+ if (
29
+ options &&
30
+ options.sampleRate &&
31
+ (options.sampleRate < 8000 || options.sampleRate > 96000)
32
+ ) {
29
33
  throw new NotSupportedError(
30
34
  `The provided sampleRate is not supported: ${options.sampleRate}`
31
35
  );
32
36
  }
33
37
 
34
- this.context = new window.AudioContext(options);
38
+ this.context = new window.AudioContext({ sampleRate: options?.sampleRate });
35
39
 
36
40
  this.sampleRate = this.context.sampleRate;
37
41
  this.destination = new AudioDestinationNode(this, this.context.destination);