react-native-audio-api 0.12.0-nightly-75589dc-20260121 → 0.12.0-nightly-6993a06-20260122
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.
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +16 -2
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +7 -3
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +6 -6
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +18 -0
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +4 -0
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +29 -14
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +7 -0
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +1 -1
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +1 -1
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +8 -2
- package/ios/audioapi/ios/AudioAPIModule.h +2 -2
- package/ios/audioapi/ios/AudioAPIModule.mm +3 -3
- package/ios/audioapi/ios/system/AudioEngine.mm +3 -1
- package/ios/audioapi/ios/system/AudioSessionManager.h +1 -0
- package/ios/audioapi/ios/system/{NotificationManager.h → SystemNotificationManager.h} +1 -1
- package/ios/audioapi/ios/system/{NotificationManager.mm → SystemNotificationManager.mm} +9 -4
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js +15 -0
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioBufferSourceNode.js +0 -6
- package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +2 -2
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/OscillatorNode.js +0 -6
- package/lib/commonjs/core/OscillatorNode.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +7 -2
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/commonjs/web-core/AudioScheduledSourceNode.js +4 -2
- package/lib/commonjs/web-core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferQueueSourceNode.js +15 -0
- package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +0 -6
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +2 -2
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/OscillatorNode.js +0 -6
- package/lib/module/core/OscillatorNode.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/module/system/AudioManager.js +7 -2
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/module/web-core/AudioScheduledSourceNode.js +4 -2
- package/lib/module/web-core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +5 -0
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts +0 -2
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -3
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +4 -4
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/OscillatorNode.d.ts +0 -3
- package/lib/typescript/core/OscillatorNode.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +6 -4
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +1 -0
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +2 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts +2 -2
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +2 -2
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +2 -1
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts +2 -0
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/AudioBufferQueueSourceNode.ts +31 -0
- package/src/core/AudioBufferSourceNode.ts +0 -10
- package/src/core/AudioScheduledSourceNode.ts +4 -4
- package/src/core/BaseAudioContext.ts +6 -6
- package/src/core/OscillatorNode.ts +0 -11
- package/src/events/types.ts +6 -4
- package/src/interfaces.ts +3 -0
- package/src/specs/NativeAudioAPIModule.ts +6 -1
- package/src/specs/NativeAudioAPIModule.web.ts +6 -2
- package/src/system/AudioManager.ts +8 -2
- package/src/system/types.ts +7 -1
- package/src/web-core/AudioScheduledSourceNode.tsx +6 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.swmansion.audioapi
|
|
2
2
|
|
|
3
|
+
import android.media.AudioManager
|
|
3
4
|
import androidx.annotation.RequiresPermission
|
|
4
5
|
import com.facebook.jni.HybridData
|
|
5
6
|
import com.facebook.react.bridge.Arguments
|
|
@@ -115,8 +116,21 @@ class AudioAPIModule(
|
|
|
115
116
|
// nothing to do here
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
override fun observeAudioInterruptions(
|
|
119
|
-
|
|
119
|
+
override fun observeAudioInterruptions(
|
|
120
|
+
focusType: String?,
|
|
121
|
+
enabled: Boolean,
|
|
122
|
+
) {
|
|
123
|
+
if (!enabled) {
|
|
124
|
+
MediaSessionManager.abandonAudioFocus()
|
|
125
|
+
return
|
|
126
|
+
}
|
|
127
|
+
when (focusType) {
|
|
128
|
+
"gain" -> MediaSessionManager.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN)
|
|
129
|
+
"gainTransient" -> MediaSessionManager.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
|
|
130
|
+
"gainTransientMayDuck" -> MediaSessionManager.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
|
|
131
|
+
"gainTransientExclusive" -> MediaSessionManager.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE)
|
|
132
|
+
else -> MediaSessionManager.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN)
|
|
133
|
+
}
|
|
120
134
|
}
|
|
121
135
|
|
|
122
136
|
override fun activelyReclaimSession(enabled: Boolean) {
|
|
@@ -47,20 +47,24 @@ class AudioFocusListener(
|
|
|
47
47
|
}
|
|
48
48
|
audioAPIModule.get()?.invokeHandlerWithEventNameAndEventBody("interruption", body)
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK -> {
|
|
52
|
+
audioAPIModule.get()?.invokeHandlerWithEventNameAndEventBody("duck", emptyMap())
|
|
53
|
+
}
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
|
|
53
|
-
fun requestAudioFocus() {
|
|
57
|
+
fun requestAudioFocus(focus: Int) {
|
|
54
58
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
55
59
|
this.focusRequest =
|
|
56
60
|
AudioFocusRequest
|
|
57
|
-
.Builder(
|
|
61
|
+
.Builder(focus)
|
|
58
62
|
.setOnAudioFocusChangeListener(this)
|
|
59
63
|
.build()
|
|
60
64
|
|
|
61
65
|
audioManager.get()?.requestAudioFocus(focusRequest!!)
|
|
62
66
|
} else {
|
|
63
|
-
audioManager.get()?.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
|
|
67
|
+
audioManager.get()?.requestAudioFocus(this, AudioManager.STREAM_MUSIC, focus)
|
|
64
68
|
}
|
|
65
69
|
}
|
|
66
70
|
|
|
@@ -88,12 +88,12 @@ object MediaSessionManager {
|
|
|
88
88
|
return sampleRate.toDouble()
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
fun
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
fun requestAudioFocus(focus: Int) {
|
|
92
|
+
audioFocusListener.requestAudioFocus(focus)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
fun abandonAudioFocus() {
|
|
96
|
+
audioFocusListener.abandonAudioFocus()
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
fun activelyReclaimSession(enabled: Boolean) {
|
|
@@ -11,6 +11,9 @@ AudioBufferQueueSourceNodeHostObject::AudioBufferQueueSourceNodeHostObject(
|
|
|
11
11
|
: AudioBufferBaseSourceNodeHostObject(node) {
|
|
12
12
|
functions_->erase("start");
|
|
13
13
|
|
|
14
|
+
addSetters(
|
|
15
|
+
JSI_EXPORT_PROPERTY_SETTER(AudioBufferQueueSourceNodeHostObject, onBufferEnded));
|
|
16
|
+
|
|
14
17
|
addFunctions(
|
|
15
18
|
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, start),
|
|
16
19
|
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, enqueueBuffer),
|
|
@@ -19,6 +22,21 @@ AudioBufferQueueSourceNodeHostObject::AudioBufferQueueSourceNodeHostObject(
|
|
|
19
22
|
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, pause));
|
|
20
23
|
}
|
|
21
24
|
|
|
25
|
+
AudioBufferQueueSourceNodeHostObject::~AudioBufferQueueSourceNodeHostObject() {
|
|
26
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
27
|
+
|
|
28
|
+
// When JSI object is garbage collected (together with the eventual callback),
|
|
29
|
+
// underlying source node might still be active and try to call the
|
|
30
|
+
// non-existing callback.
|
|
31
|
+
audioBufferQueueSourceNode->setOnBufferEndedCallbackId(0);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
JSI_PROPERTY_SETTER_IMPL(AudioBufferQueueSourceNodeHostObject, onBufferEnded) {
|
|
35
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
36
|
+
|
|
37
|
+
audioBufferQueueSourceNode->setOnBufferEndedCallbackId(std::stoull(value.getString(runtime).utf8(runtime)));
|
|
38
|
+
}
|
|
39
|
+
|
|
22
40
|
JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, start) {
|
|
23
41
|
auto when = args[0].getNumber();
|
|
24
42
|
|
|
@@ -15,6 +15,10 @@ class AudioBufferQueueSourceNodeHostObject : public AudioBufferBaseSourceNodeHos
|
|
|
15
15
|
explicit AudioBufferQueueSourceNodeHostObject(
|
|
16
16
|
const std::shared_ptr<AudioBufferQueueSourceNode> &node);
|
|
17
17
|
|
|
18
|
+
~AudioBufferQueueSourceNodeHostObject() override;
|
|
19
|
+
|
|
20
|
+
JSI_PROPERTY_SETTER_DECL(onBufferEnded);
|
|
21
|
+
|
|
18
22
|
JSI_HOST_FUNCTION_DECL(start);
|
|
19
23
|
JSI_HOST_FUNCTION_DECL(pause);
|
|
20
24
|
JSI_HOST_FUNCTION_DECL(enqueueBuffer);
|
|
@@ -78,6 +78,10 @@ std::string AudioBufferQueueSourceNode::enqueueBuffer(const std::shared_ptr<Audi
|
|
|
78
78
|
auto locker = Locker(getBufferLock());
|
|
79
79
|
buffers_.emplace(bufferId_, buffer);
|
|
80
80
|
|
|
81
|
+
if (tailBuffer_ != nullptr) {
|
|
82
|
+
addExtraTailFrames_ = true;
|
|
83
|
+
}
|
|
84
|
+
|
|
81
85
|
return std::to_string(bufferId_++);
|
|
82
86
|
}
|
|
83
87
|
|
|
@@ -125,6 +129,14 @@ void AudioBufferQueueSourceNode::disable() {
|
|
|
125
129
|
buffers_ = {};
|
|
126
130
|
}
|
|
127
131
|
|
|
132
|
+
void AudioBufferQueueSourceNode::setOnBufferEndedCallbackId(uint64_t callbackId) {
|
|
133
|
+
auto oldCallbackId = onBufferEndedCallbackId_.exchange(callbackId, std::memory_order_acq_rel);
|
|
134
|
+
|
|
135
|
+
if (oldCallbackId != 0) {
|
|
136
|
+
audioEventHandlerRegistry_->unregisterHandler("bufferEnded", oldCallbackId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
128
140
|
std::shared_ptr<AudioBus> AudioBufferQueueSourceNode::processNode(
|
|
129
141
|
const std::shared_ptr<AudioBus> &processingBus,
|
|
130
142
|
int framesToProcess) {
|
|
@@ -158,6 +170,18 @@ double AudioBufferQueueSourceNode::getCurrentPosition() const {
|
|
|
158
170
|
}
|
|
159
171
|
}
|
|
160
172
|
|
|
173
|
+
void AudioBufferQueueSourceNode::sendOnBufferEndedEvent(size_t bufferId, bool isLastBufferInQueue) {
|
|
174
|
+
auto onBufferEndedCallbackId = onBufferEndedCallbackId_.load(std::memory_order_acquire);
|
|
175
|
+
|
|
176
|
+
if (onBufferEndedCallbackId != 0) {
|
|
177
|
+
std::unordered_map<std::string, EventValue> body =
|
|
178
|
+
{{"bufferId", std::to_string(bufferId)}, {"isLastBufferInQueue", isLastBufferInQueue}};
|
|
179
|
+
|
|
180
|
+
audioEventHandlerRegistry_->invokeHandlerWithEventBody(
|
|
181
|
+
"bufferEnded", onBufferEndedCallbackId, body);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
161
185
|
/**
|
|
162
186
|
* Helper functions
|
|
163
187
|
*/
|
|
@@ -196,20 +220,15 @@ void AudioBufferQueueSourceNode::processWithoutInterpolation(
|
|
|
196
220
|
playedBuffersDuration_ += buffer->getDuration();
|
|
197
221
|
buffers_.pop();
|
|
198
222
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if (std::shared_ptr<BaseAudioContext> context = context_.lock()) {
|
|
202
|
-
context->audioEventHandlerRegistry_->invokeHandlerWithEventBody(
|
|
203
|
-
"ended", onEndedCallbackId_, body);
|
|
223
|
+
if (!(buffers_.empty() && addExtraTailFrames_)) {
|
|
224
|
+
sendOnBufferEndedEvent(bufferId, buffers_.empty());
|
|
204
225
|
}
|
|
205
226
|
|
|
206
227
|
if (buffers_.empty()) {
|
|
207
228
|
if (addExtraTailFrames_) {
|
|
208
|
-
buffers_.emplace(
|
|
209
|
-
bufferId_++;
|
|
210
|
-
|
|
229
|
+
buffers_.emplace(bufferId, tailBuffer_);
|
|
211
230
|
addExtraTailFrames_ = false;
|
|
212
|
-
} else
|
|
231
|
+
} else {
|
|
213
232
|
processingBus->zero(writeIndex, framesLeft);
|
|
214
233
|
readIndex = 0;
|
|
215
234
|
|
|
@@ -284,11 +303,7 @@ void AudioBufferQueueSourceNode::processWithInterpolation(
|
|
|
284
303
|
playedBuffersDuration_ += buffer->getDuration();
|
|
285
304
|
buffers_.pop();
|
|
286
305
|
|
|
287
|
-
|
|
288
|
-
if (std::shared_ptr<BaseAudioContext> context = context_.lock()) {
|
|
289
|
-
context->audioEventHandlerRegistry_->invokeHandlerWithEventBody(
|
|
290
|
-
"ended", onEndedCallbackId_, body);
|
|
291
|
-
}
|
|
306
|
+
sendOnBufferEndedEvent(bufferId, buffers_.empty());
|
|
292
307
|
|
|
293
308
|
if (buffers_.empty()) {
|
|
294
309
|
processingBus->zero(writeIndex, framesLeft);
|
|
@@ -34,12 +34,17 @@ class AudioBufferQueueSourceNode : public AudioBufferBaseSourceNode {
|
|
|
34
34
|
void clearBuffers();
|
|
35
35
|
void disable() override;
|
|
36
36
|
|
|
37
|
+
void setOnBufferEndedCallbackId(uint64_t callbackId);
|
|
38
|
+
|
|
37
39
|
protected:
|
|
38
40
|
std::shared_ptr<AudioBus> processNode(
|
|
39
41
|
const std::shared_ptr<AudioBus> &processingBus,
|
|
40
42
|
int framesToProcess) override;
|
|
43
|
+
|
|
41
44
|
double getCurrentPosition() const override;
|
|
42
45
|
|
|
46
|
+
void sendOnBufferEndedEvent(size_t bufferId, bool isLastBufferInQueue);
|
|
47
|
+
|
|
43
48
|
private:
|
|
44
49
|
// User provided buffers
|
|
45
50
|
std::queue<std::pair<size_t, std::shared_ptr<AudioBuffer>>> buffers_;
|
|
@@ -51,6 +56,8 @@ class AudioBufferQueueSourceNode : public AudioBufferBaseSourceNode {
|
|
|
51
56
|
|
|
52
57
|
double playedBuffersDuration_ = 0;
|
|
53
58
|
|
|
59
|
+
std::atomic<uint64_t> onBufferEndedCallbackId_ = 0; // 0 means no callback
|
|
60
|
+
|
|
54
61
|
void processWithoutInterpolation(
|
|
55
62
|
const std::shared_ptr<AudioBus> &processingBus,
|
|
56
63
|
size_t startOffset,
|
|
@@ -324,7 +324,7 @@ void AudioBufferSourceNode::processWithInterpolation(
|
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
|
|
327
|
-
double AudioBufferSourceNode::getVirtualStartFrame(float sampleRate) {
|
|
327
|
+
double AudioBufferSourceNode::getVirtualStartFrame(float sampleRate) const {
|
|
328
328
|
auto loopStartFrame = loopStart_ * sampleRate;
|
|
329
329
|
return loop_ && loopStartFrame >= 0 && loopStart_ < loopEnd_ ? loopStartFrame : 0.0;
|
|
330
330
|
}
|
|
@@ -72,7 +72,7 @@ class AudioBufferSourceNode : public AudioBufferBaseSourceNode {
|
|
|
72
72
|
size_t offsetLength,
|
|
73
73
|
float playbackRate) override;
|
|
74
74
|
|
|
75
|
-
double getVirtualStartFrame(float sampleRate);
|
|
75
|
+
double getVirtualStartFrame(float sampleRate) const;
|
|
76
76
|
double getVirtualEndFrame(float sampleRate);
|
|
77
77
|
};
|
|
78
78
|
|
|
@@ -62,8 +62,14 @@ class AudioEventHandlerRegistry : public IAudioEventHandlerRegistry {
|
|
|
62
62
|
"volumeChange",
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
static constexpr std::array<std::string_view,
|
|
66
|
-
|
|
65
|
+
static constexpr std::array<std::string_view, 7> AUDIO_API_EVENT_NAMES = {
|
|
66
|
+
"ended",
|
|
67
|
+
"loopEnded",
|
|
68
|
+
"audioReady",
|
|
69
|
+
"positionChanged",
|
|
70
|
+
"bufferEnded",
|
|
71
|
+
"audioError",
|
|
72
|
+
"systemStateChanged"};
|
|
67
73
|
|
|
68
74
|
jsi::Object createEventObject(const std::unordered_map<std::string, EventValue> &body);
|
|
69
75
|
jsi::Object createEventObject(
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
#import <React/RCTEventEmitter.h>
|
|
10
10
|
|
|
11
11
|
@class AudioEngine;
|
|
12
|
-
@class
|
|
12
|
+
@class SystemNotificationManager;
|
|
13
13
|
@class AudioSessionManager;
|
|
14
14
|
@class NotificationRegistry;
|
|
15
15
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
22
22
|
|
|
23
23
|
@property (nonatomic, strong) AudioEngine *audioEngine;
|
|
24
|
-
@property (nonatomic, strong)
|
|
24
|
+
@property (nonatomic, strong) SystemNotificationManager *notificationManager;
|
|
25
25
|
@property (nonatomic, strong) AudioSessionManager *audioSessionManager;
|
|
26
26
|
@property (nonatomic, strong) NotificationRegistry *notificationRegistry;
|
|
27
27
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#import <audioapi/AudioAPIModuleInstaller.h>
|
|
12
12
|
#import <audioapi/ios/system/AudioEngine.h>
|
|
13
13
|
#import <audioapi/ios/system/AudioSessionManager.h>
|
|
14
|
-
#import <audioapi/ios/system/
|
|
14
|
+
#import <audioapi/ios/system/SystemNotificationManager.h>
|
|
15
15
|
#import <audioapi/ios/system/notification/NotificationRegistry.h>
|
|
16
16
|
|
|
17
17
|
#import <audioapi/events/AudioEventHandlerRegistry.h>
|
|
@@ -66,7 +66,7 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install)
|
|
|
66
66
|
{
|
|
67
67
|
self.audioSessionManager = [[AudioSessionManager alloc] init];
|
|
68
68
|
self.audioEngine = [[AudioEngine alloc] init];
|
|
69
|
-
self.notificationManager = [[
|
|
69
|
+
self.notificationManager = [[SystemNotificationManager alloc] initWithAudioAPIModule:self];
|
|
70
70
|
self.notificationRegistry = [[NotificationRegistry alloc] initWithAudioAPIModule:self];
|
|
71
71
|
|
|
72
72
|
auto jsiRuntime = reinterpret_cast<facebook::jsi::Runtime *>(self.bridge.runtime);
|
|
@@ -163,7 +163,7 @@ RCT_EXPORT_METHOD(
|
|
|
163
163
|
allowHaptics:allowHaptics];
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
RCT_EXPORT_METHOD(observeAudioInterruptions : (BOOL)enabled)
|
|
166
|
+
RCT_EXPORT_METHOD(observeAudioInterruptions : (NSString *)focusType enabled : (BOOL)enabled)
|
|
167
167
|
{
|
|
168
168
|
[self.notificationManager observeAudioInterruptions:enabled];
|
|
169
169
|
}
|
|
@@ -270,8 +270,10 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
270
270
|
[self.audioEngine stop];
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
self.audioEngine = [[AVAudioEngine alloc] init];
|
|
274
273
|
[self rebuildAudioEngine];
|
|
274
|
+
if (self.state == AudioEngineState::AudioEngineStateRunning) {
|
|
275
|
+
[self startEngine];
|
|
276
|
+
}
|
|
275
277
|
}
|
|
276
278
|
|
|
277
279
|
- (void)logAudioEngineState
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#import <audioapi/ios/AudioAPIModule.h>
|
|
2
2
|
#import <audioapi/ios/system/AudioEngine.h>
|
|
3
3
|
#import <audioapi/ios/system/AudioSessionManager.h>
|
|
4
|
-
#import <audioapi/ios/system/
|
|
4
|
+
#import <audioapi/ios/system/SystemNotificationManager.h>
|
|
5
5
|
|
|
6
|
-
@implementation
|
|
6
|
+
@implementation SystemNotificationManager
|
|
7
7
|
|
|
8
|
-
static NSString *NotificationManagerContext = @"
|
|
8
|
+
static NSString *NotificationManagerContext = @"SystemNotificationManagerContext";
|
|
9
9
|
|
|
10
10
|
- (instancetype)initWithAudioAPIModule:(AudioAPIModule *)audioAPIModule
|
|
11
11
|
{
|
|
@@ -216,8 +216,13 @@ static NSString *NotificationManagerContext = @"NotificationManagerContext";
|
|
|
216
216
|
NSLog(
|
|
217
217
|
@"[NotificationManager] Media services have been reset, tearing down and rebuilding everything.");
|
|
218
218
|
AudioEngine *audioEngine = self.audioAPIModule.audioEngine;
|
|
219
|
+
AudioSessionManager *sessionManager = self.audioAPIModule.audioSessionManager;
|
|
219
220
|
|
|
220
|
-
dispatch_async(dispatch_get_main_queue(), ^{
|
|
221
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
222
|
+
[sessionManager markInactive];
|
|
223
|
+
[sessionManager setActive:YES error:nil];
|
|
224
|
+
[audioEngine restartAudioEngine];
|
|
225
|
+
});
|
|
221
226
|
}
|
|
222
227
|
|
|
223
228
|
- (void)handleEngineConfigurationChange:(NSNotification *)notification
|
|
@@ -45,6 +45,21 @@ class AudioBufferQueueSourceNode extends _AudioBufferBaseSourceNode.default {
|
|
|
45
45
|
}
|
|
46
46
|
this.node.stop(when);
|
|
47
47
|
}
|
|
48
|
+
get onBufferEnded() {
|
|
49
|
+
return this.onBufferEndedCallback;
|
|
50
|
+
}
|
|
51
|
+
set onBufferEnded(callback) {
|
|
52
|
+
if (!callback) {
|
|
53
|
+
this.node.onBufferEnded = '0';
|
|
54
|
+
this.onBufferEndedSubscription?.remove();
|
|
55
|
+
this.onBufferEndedSubscription = undefined;
|
|
56
|
+
this.onBufferEndedCallback = undefined;
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.onBufferEndedCallback = callback;
|
|
60
|
+
this.onBufferEndedSubscription = this.audioEventEmitter.addAudioEventListener('bufferEnded', callback);
|
|
61
|
+
this.node.onBufferEnded = this.onBufferEndedSubscription.subscriptionId;
|
|
62
|
+
}
|
|
48
63
|
pause() {
|
|
49
64
|
this.node.pause();
|
|
50
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_errors","_defaults","e","__esModule","default","AudioBufferQueueSourceNode","AudioBufferBaseSourceNode","constructor","context","options","finalOptions","BaseAudioBufferSourceOptions","node","createBufferQueueSource","enqueueBuffer","buffer","dequeueBuffer","bufferId","id","parseInt","isNaN","RangeError","clearBuffers","start","when","offset","stop","pause","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferQueueSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,SAAA,GAAAF,OAAA;AAA2D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;
|
|
1
|
+
{"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_errors","_defaults","e","__esModule","default","AudioBufferQueueSourceNode","AudioBufferBaseSourceNode","constructor","context","options","finalOptions","BaseAudioBufferSourceOptions","node","createBufferQueueSource","enqueueBuffer","buffer","dequeueBuffer","bufferId","id","parseInt","isNaN","RangeError","clearBuffers","start","when","offset","stop","onBufferEnded","onBufferEndedCallback","callback","onBufferEndedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","pause","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferQueueSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,SAAA,GAAAF,OAAA;AAA2D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI5C,MAAMG,0BAA0B,SAASC,kCAAyB,CAAC;EAIhFC,WAAWA,CACTC,OAAyB,EACzBC,OAAuC,EACvC;IACA,MAAMC,YAA2C,GAAG;MAClD,GAAGC,sCAA4B;MAC/B,GAAGF;IACL,CAAC;IACD,MAAMG,IAAI,GAAGJ,OAAO,CAACA,OAAO,CAACK,uBAAuB,CAACH,YAAY,CAAC;IAClE,KAAK,CAACF,OAAO,EAAEI,IAAI,CAAC;EACtB;EAEOE,aAAaA,CAACC,MAAmB,EAAU;IAChD,OAAQ,IAAI,CAACH,IAAI,CAAiCE,aAAa,CAC7DC,MAAM,CAACA,MACT,CAAC;EACH;EAEOC,aAAaA,CAACC,QAAgB,EAAQ;IAC3C,MAAMC,EAAE,GAAGC,QAAQ,CAACF,QAAQ,EAAE,EAAE,CAAC;IACjC,IAAIG,KAAK,CAACF,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,EAAE;MACvB,MAAM,IAAIG,kBAAU,CAClB,4CAA4CJ,QAAQ,EACtD,CAAC;IACH;IACC,IAAI,CAACL,IAAI,CAAiCI,aAAa,CAACE,EAAE,CAAC;EAC9D;EAEOI,YAAYA,CAAA,EAAS;IACzB,IAAI,CAACV,IAAI,CAAiCU,YAAY,CAAC,CAAC;EAC3D;EAEgBC,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAQ;IAC7D,IAAID,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIH,kBAAU,CAClB,8CAA8CG,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,IAAIA,MAAM,GAAG,CAAC,EAAE;MACxB,MAAM,IAAIJ,kBAAU,CAClB,gDAAgDI,MAAM,EACxD,CAAC;IACH;IAEC,IAAI,CAACb,IAAI,CAAiCW,KAAK,CAACC,IAAI,EAAEC,MAAM,CAAC;EAChE;EAEgBC,IAAIA,CAACF,IAAY,GAAG,CAAC,EAAQ;IAC3C,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIH,kBAAU,CAClB,8CAA8CG,IAAI,EACpD,CAAC;IACH;IAEC,IAAI,CAACZ,IAAI,CAAiCc,IAAI,CAACF,IAAI,CAAC;EACvD;EAEA,IAAWG,aAAaA,CAAA,EAEV;IACZ,OAAO,IAAI,CAACC,qBAAqB;EACnC;EAEA,IAAWD,aAAaA,CACtBE,QAAwD,EACxD;IACA,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACjB,IAAI,CAAiCe,aAAa,GAAG,GAAG;MAC9D,IAAI,CAACG,yBAAyB,EAAEC,MAAM,CAAC,CAAC;MACxC,IAAI,CAACD,yBAAyB,GAAGE,SAAS;MAC1C,IAAI,CAACJ,qBAAqB,GAAGI,SAAS;MAEtC;IACF;IAEA,IAAI,CAACJ,qBAAqB,GAAGC,QAAQ;IACrC,IAAI,CAACC,yBAAyB,GAC5B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,aAAa,EAAEL,QAAQ,CAAC;IAEtE,IAAI,CAACjB,IAAI,CAAiCe,aAAa,GACtD,IAAI,CAACG,yBAAyB,CAACK,cAAc;EACjD;EAEOC,KAAKA,CAAA,EAAS;IAClB,IAAI,CAACxB,IAAI,CAAiCwB,KAAK,CAAC,CAAC;EACpD;AACF;AAACC,OAAA,CAAAjC,OAAA,GAAAC,0BAAA","ignoreList":[]}
|
|
@@ -72,12 +72,6 @@ class AudioBufferSourceNode extends _AudioBufferBaseSourceNode.default {
|
|
|
72
72
|
this.hasBeenStarted = true;
|
|
73
73
|
this.node.start(when, offset, duration);
|
|
74
74
|
}
|
|
75
|
-
get onEnded() {
|
|
76
|
-
return super.onEnded;
|
|
77
|
-
}
|
|
78
|
-
set onEnded(callback) {
|
|
79
|
-
super.onEnded = callback;
|
|
80
|
-
}
|
|
81
75
|
get onLoopEnded() {
|
|
82
76
|
return this.onLoopEndedCallback;
|
|
83
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","_defaults","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","constructor","context","options","finalOptions","AudioBufferSourceOptions","node","createBufferSource","buffer","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","
|
|
1
|
+
{"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","_defaults","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","constructor","context","options","finalOptions","AudioBufferSourceOptions","node","createBufferSource","buffer","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","onLoopEnded","onLoopEndedCallback","callback","onLoopEndedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -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","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,
|
|
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":[]}
|
|
@@ -95,7 +95,7 @@ class BaseAudioContext {
|
|
|
95
95
|
return new _BiquadFilterNode.default(this);
|
|
96
96
|
}
|
|
97
97
|
createBufferSource(options) {
|
|
98
|
-
if (options
|
|
98
|
+
if (options !== undefined) {
|
|
99
99
|
return new _AudioBufferSourceNode.default(this, options);
|
|
100
100
|
} else {
|
|
101
101
|
return new _AudioBufferSourceNode.default(this);
|
|
@@ -120,7 +120,7 @@ class BaseAudioContext {
|
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
122
|
createBufferQueueSource(options) {
|
|
123
|
-
if (options
|
|
123
|
+
if (options !== undefined) {
|
|
124
124
|
return new _AudioBufferQueueSourceNode.default(this, options);
|
|
125
125
|
} else {
|
|
126
126
|
return new _AudioBufferQueueSourceNode.default(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_errors","require","_utils","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDecoder","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_DelayNode","_GainNode","_IIRFilterNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WaveShaperNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","fetchOptions","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","assertWorkletsEnabled","WorkletNode","createWorkletProcessingNode","WorkletProcessingNode","createWorkletSourceNode","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createDelay","maxDelayTime","undefined","DelayNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","
|
|
1
|
+
{"version":3,"names":["_errors","require","_utils","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDecoder","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_DelayNode","_GainNode","_IIRFilterNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WaveShaperNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","fetchOptions","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","assertWorkletsEnabled","WorkletNode","createWorkletProcessingNode","WorkletProcessingNode","createWorkletSourceNode","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createDelay","maxDelayTime","undefined","DelayNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","AudioBufferSourceNode","createIIRFilter","feedforward","feedback","length","every","value","InvalidStateError","IIRFilterNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numberOfChannels","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","createConvolver","ConvolverNode","createWaveShaper","WaveShaperNode","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,12 +36,6 @@ class OscillatorNode extends _AudioScheduledSourceNode.default {
|
|
|
36
36
|
setPeriodicWave(wave) {
|
|
37
37
|
this.node.setPeriodicWave(wave.periodicWave);
|
|
38
38
|
}
|
|
39
|
-
get onEnded() {
|
|
40
|
-
return super.onEnded;
|
|
41
|
-
}
|
|
42
|
-
set onEnded(callback) {
|
|
43
|
-
super.onEnded = callback;
|
|
44
|
-
}
|
|
45
39
|
}
|
|
46
40
|
exports.default = OscillatorNode;
|
|
47
41
|
//# sourceMappingURL=OscillatorNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","_errors","_defaults","e","__esModule","default","OscillatorNode","AudioScheduledSourceNode","constructor","context","options","finalOptions","OscillatorOptions","periodicWave","type","node","createOscillator","frequency","AudioParam","detune","value","InvalidStateError","setPeriodicWave","wave","
|
|
1
|
+
{"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","_errors","_defaults","e","__esModule","default","OscillatorNode","AudioScheduledSourceNode","constructor","context","options","finalOptions","OscillatorOptions","periodicWave","type","node","createOscillator","frequency","AudioParam","detune","value","InvalidStateError","setPeriodicWave","wave","exports"],"sourceRoot":"../../../src","sources":["core/OscillatorNode.ts"],"mappings":";;;;;;AACA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAAgD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGjC,MAAMG,cAAc,SAASC,iCAAwB,CAAC;EAInEC,WAAWA,CAACC,OAAyB,EAAEC,OAA4B,EAAE;IACnE,MAAMC,YAAgC,GAAG;MACvC,GAAGC,2BAAiB;MACpB,GAAGF;IACL,CAAC;IAED,IAAIC,YAAY,CAACE,YAAY,EAAE;MAC7BF,YAAY,CAACG,IAAI,GAAG,QAAQ;IAC9B;IAEA,MAAMC,IAAI,GAAGN,OAAO,CAACA,OAAO,CAACO,gBAAgB,CAACL,YAAY,CAAC;IAC3D,KAAK,CAACF,OAAO,EAAEM,IAAI,CAAC;IACpB,IAAI,CAACE,SAAS,GAAG,IAAIC,mBAAU,CAACH,IAAI,CAACE,SAAS,EAAER,OAAO,CAAC;IACxD,IAAI,CAACU,MAAM,GAAG,IAAID,mBAAU,CAACH,IAAI,CAACI,MAAM,EAAEV,OAAO,CAAC;IAClD,IAAI,CAACK,IAAI,GAAGC,IAAI,CAACD,IAAI;EACvB;EAEA,IAAWA,IAAIA,CAAA,EAAmB;IAChC,OAAQ,IAAI,CAACC,IAAI,CAAqBD,IAAI;EAC5C;EAEA,IAAWA,IAAIA,CAACM,KAAqB,EAAE;IACrC,IAAIA,KAAK,KAAK,QAAQ,EAAE;MACtB,MAAM,IAAIC,yBAAiB,CACzB,uGACF,CAAC;IACH;IAEC,IAAI,CAACN,IAAI,CAAqBD,IAAI,GAAGM,KAAK;EAC7C;EAEOE,eAAeA,CAACC,IAAkB,EAAQ;IAC9C,IAAI,CAACR,IAAI,CAAqBO,eAAe,CAACC,IAAI,CAACV,YAAY,CAAC;EACnE;AACF;AAACW,OAAA,CAAAnB,OAAA,GAAAC,cAAA","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;AAEb,IAAAC,YAAA,GAAAC,OAAA;
|
|
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;AAEb,IAAAC,YAAA,GAAAC,OAAA;AAkDA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mockAsync","value","Promise","resolve","mockSync","NativeAudioAPIModule","exports","install","getDevicePreferredSampleRate","setAudioSessionActivity","setAudioSessionOptions","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","availableInputs","availableOutputs","currentInputs","currentOutputs","showNotification","success","hideNotification","isNotificationActive"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.web.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["mockAsync","value","Promise","resolve","mockSync","NativeAudioAPIModule","exports","install","getDevicePreferredSampleRate","setAudioSessionActivity","setAudioSessionOptions","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","availableInputs","availableOutputs","currentInputs","currentOutputs","showNotification","success","hideNotification","isNotificationActive"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.web.ts"],"mappings":";;;;;;AAOA;;AA6CA,MAAMA,SAAS,GACTC,KAAQ,IACZ,MACEC,OAAO,CAACC,OAAO,CAACF,KAAK,CAAC;AAC1B,MAAMG,QAAQ,GACRH,KAAQ,IACZ,MACEA,KAAK;AAET,MAAMI,oBAA0B,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EACjCE,OAAO,EAAEH,QAAQ,CAAC,IAAI,CAAC;EACvBI,4BAA4B,EAAEJ,QAAQ,CAAC,CAAC,CAAC;EACzCK,uBAAuB,EAAET,SAAS,CAAC,IAAI,CAAC;EACxCU,sBAAsB,EAAEN,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpCO,wBAAwB,EAAEP,QAAQ,CAAC,CAAC,CAAC,CAAC;EACtCQ,yBAAyB,EAAER,QAAQ,CAAC,CAAC,CAAC,CAAC;EACvCS,sBAAsB,EAAET,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpCU,oBAAoB,EAAEV,QAAQ,CAAC,CAAC,CAAC,CAAC;EAClCW,2BAA2B,EAAEf,SAAS,CAAC,SAA6B,CAAC;EACrEgB,yBAAyB,EAAEhB,SAAS,CAAC,SAA6B,CAAC;EACnEiB,8BAA8B,EAAEjB,SAAS,CAAC,SAA6B,CAAC;EACxEkB,4BAA4B,EAAElB,SAAS,CAAC,SAA6B,CAAC;EACtEmB,cAAc,EAAEnB,SAAS,CAAC;IACxBoB,eAAe,EAAE,EAAE;IACnBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,cAAc,EAAE;EAClB,CAAC,CAAC;EACFC,gBAAgB,EAAExB,SAAS,CAAC;IAAEyB,OAAO,EAAE;EAAK,CAAC,CAAC;EAC9CC,gBAAgB,EAAE1B,SAAS,CAAC;IAAEyB,OAAO,EAAE;EAAK,CAAC,CAAC;EAC9CE,oBAAoB,EAAE3B,SAAS,CAAC,KAAK;AACvC,CAAC","ignoreList":[]}
|
|
@@ -28,8 +28,13 @@ class AudioManager {
|
|
|
28
28
|
disableSessionManagement() {
|
|
29
29
|
_specs.NativeAudioAPIModule.disableSessionManagement();
|
|
30
30
|
}
|
|
31
|
-
observeAudioInterruptions(
|
|
32
|
-
|
|
31
|
+
observeAudioInterruptions(param) {
|
|
32
|
+
if (typeof param === 'string') {
|
|
33
|
+
_specs.NativeAudioAPIModule.observeAudioInterruptions(param, true);
|
|
34
|
+
} else {
|
|
35
|
+
// audiofocusgain as default value if not provided
|
|
36
|
+
_specs.NativeAudioAPIModule.observeAudioInterruptions('gain', param === true);
|
|
37
|
+
}
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_specs","_errors","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","success","error","parseNativeError","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","name","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_events","require","_specs","_errors","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","success","error","parseNativeError","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","observeAudioInterruptions","param","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","name","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AASA,MAAMG,YAAY,CAA0B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIC,yBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAE,4BAA4BA,CAAA,EAAW;IACrC,OAAOC,2BAAoB,CAACD,4BAA4B,CAAC,CAAC;EAC5D;EAEA,MAAME,uBAAuBA,CAACC,OAAgB,EAAoB;IAChE,IAAI;MACF,MAAMC,OAAO,GACX,MAAMH,2BAAoB,CAACC,uBAAuB,CAACC,OAAO,CAAC;MAE7D,OAAOC,OAAO;IAChB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAAC,wBAAgB,EAACD,KAAK,CAAC;IAC/B;EACF;EAEAE,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CP,2BAAoB,CAACM,sBAAsB,CACzCC,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,wBAAwBA,CAAA,EAAG;IACzBZ,2BAAoB,CAACY,wBAAwB,CAAC,CAAC;EACjD;EAEAC,yBAAyBA,CAACC,KAAsC,EAAE;IAChE,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7Bd,2BAAoB,CAACa,yBAAyB,CAACC,KAAK,EAAE,IAAI,CAAC;IAC7D,CAAC,MAAM;MACL;MACAd,2BAAoB,CAACa,yBAAyB,CAAC,MAAM,EAAEC,KAAK,KAAK,IAAI,CAAC;IACxE;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,sBAAsBA,CAACb,OAAgB,EAAE;IACvCF,2BAAoB,CAACe,sBAAsB,CAACb,OAAO,CAAC;EACtD;EAEAc,oBAAoBA,CAACd,OAAgB,EAAE;IACrCF,2BAAoB,CAACgB,oBAAoB,CAACd,OAAO,CAAC;EACpD;EAEAe,sBAAsBA,CACpBC,IAAU,EACVC,QAAmC,EACX;IACxB,OAAO,IAAI,CAACvB,iBAAiB,CAACwB,qBAAqB,CAACF,IAAI,EAAEC,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOrB,2BAAoB,CAACqB,2BAA2B,CAAC,CAAC;EAC3D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOtB,2BAAoB,CAACsB,yBAAyB,CAAC,CAAC;EACzD;EAEA,MAAMC,8BAA8BA,CAAA,EAA8B;IAChE,OAAOvB,2BAAoB,CAACuB,8BAA8B,CAAC,CAAC;EAC9D;EAEA,MAAMC,4BAA4BA,CAAA,EAA8B;IAC9D,OAAOxB,2BAAoB,CAACwB,4BAA4B,CAAC,CAAC;EAC5D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAOzB,2BAAoB,CAACyB,cAAc,CAAC,CAAC;EAC9C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAIlC,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -28,10 +28,12 @@ class AudioScheduledSourceNode extends _AudioNode.default {
|
|
|
28
28
|
}
|
|
29
29
|
this.node.stop(when);
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
get onEnded() {
|
|
32
|
+
return this.onEndedCallback;
|
|
33
|
+
}
|
|
33
34
|
set onEnded(callback) {
|
|
34
35
|
this.node.onended = callback;
|
|
36
|
+
this.onEndedCallback = callback;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
exports.default = AudioScheduledSourceNode;
|