react-native-audio-api 0.6.2-rc.0 → 0.6.2-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +0 -2
- package/common/cpp/audioapi/HostObjects/AudioBufferQueueSourceNodeHostObject.h +17 -3
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +22 -2
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +5 -0
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +0 -1
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +3 -3
- package/ios/audioapi/ios/AudioAPIModule.mm +4 -2
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +0 -2
- package/ios/audioapi/ios/system/AudioSessionManager.h +5 -1
- package/ios/audioapi/ios/system/AudioSessionManager.mm +23 -3
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js +8 -7
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +1 -1
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/module/core/AudioBufferQueueSourceNode.js +9 -8
- package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/system/AudioManager.js +1 -1
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +3 -2
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +1 -5
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +4 -3
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +1 -0
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/AudioBufferQueueSourceNode.ts +14 -15
- package/src/events/types.ts +1 -6
- package/src/interfaces.ts +4 -3
- package/src/specs/NativeAudioAPIModule.ts +2 -1
- package/src/system/AudioManager.ts +2 -1
- package/src/system/types.ts +1 -0
package/README.md
CHANGED
|
@@ -34,11 +34,13 @@ check out the [Getting Started](https://docs.swmansion.com/react-native-audio-ap
|
|
|
34
34
|
Ability to modify playback speed without affecting pitch of the sound
|
|
35
35
|
<br />
|
|
36
36
|
|
|
37
|
-
- <sub>[](https://github.com/software-mansion/react-native-audio-api/releases/tag/0.6.0)</sub>
|
|
37
|
+
- <sub>[](https://github.com/software-mansion/react-native-audio-api/releases/tag/0.6.0)</sub> **System configuration** 🛠️ <br />
|
|
38
38
|
Full control of system audio settings, remote controls, lock screen integration and most importantly configurable background modes <br />
|
|
39
|
-
|
|
39
|
+
|
|
40
|
+
- **Microphone support** 🎙️ <br />
|
|
40
41
|
Grab audio data from device microphone or connected device, connect it to the audio graph or stream through the internet <br />
|
|
41
|
-
|
|
42
|
+
|
|
43
|
+
- **Connect audio param** 🤞 <br />
|
|
42
44
|
Ability to connect Audio nodes to audio params, which will allow for powerful and efficient modulation of audio parameters, creating effects like tremolo, vibrato or complex envelope followers. <br />
|
|
43
45
|
|
|
44
46
|
- **JS Audio Worklets** 🐎 <br />
|
|
@@ -30,7 +30,8 @@ class AudioBufferQueueSourceNodeHostObject
|
|
|
30
30
|
|
|
31
31
|
addFunctions(
|
|
32
32
|
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, start),
|
|
33
|
-
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, enqueueBuffer)
|
|
33
|
+
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, enqueueBuffer),
|
|
34
|
+
JSI_EXPORT_FUNCTION(AudioBufferQueueSourceNodeHostObject, pause));
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
JSI_PROPERTY_GETTER(detune) {
|
|
@@ -66,12 +67,25 @@ class AudioBufferQueueSourceNodeHostObject
|
|
|
66
67
|
|
|
67
68
|
JSI_HOST_FUNCTION(start) {
|
|
68
69
|
auto when = args[0].getNumber();
|
|
69
|
-
auto offset = args[1].getNumber();
|
|
70
70
|
|
|
71
71
|
auto audioBufferQueueSourceNode =
|
|
72
72
|
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
if (args[1].isUndefined()) {
|
|
75
|
+
audioBufferQueueSourceNode->start(when);
|
|
76
|
+
} else {
|
|
77
|
+
auto offset = args[1].asNumber();
|
|
78
|
+
audioBufferQueueSourceNode->start(when, offset);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return jsi::Value::undefined();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
JSI_HOST_FUNCTION(pause) {
|
|
85
|
+
auto audioBufferQueueSourceNode =
|
|
86
|
+
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
87
|
+
|
|
88
|
+
audioBufferQueueSourceNode->pause();
|
|
75
89
|
|
|
76
90
|
return jsi::Value::undefined();
|
|
77
91
|
}
|
|
@@ -47,12 +47,22 @@ std::shared_ptr<AudioParam> AudioBufferQueueSourceNode::getPlaybackRateParam()
|
|
|
47
47
|
return playbackRateParam_;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
void AudioBufferQueueSourceNode::start(double when
|
|
50
|
+
void AudioBufferQueueSourceNode::start(double when) {
|
|
51
51
|
AudioScheduledSourceNode::start(when);
|
|
52
|
+
isPaused_ = false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void AudioBufferQueueSourceNode::start(double when, double offset) {
|
|
56
|
+
start(when);
|
|
52
57
|
|
|
53
58
|
vReadIndex_ = static_cast<double>(context_->getSampleRate() * offset);
|
|
54
59
|
}
|
|
55
60
|
|
|
61
|
+
void AudioBufferQueueSourceNode::pause() {
|
|
62
|
+
AudioScheduledSourceNode::stop(0.0);
|
|
63
|
+
isPaused_ = true;
|
|
64
|
+
}
|
|
65
|
+
|
|
56
66
|
void AudioBufferQueueSourceNode::enqueueBuffer(
|
|
57
67
|
const std::shared_ptr<AudioBuffer> &buffer,
|
|
58
68
|
int bufferId,
|
|
@@ -64,6 +74,14 @@ void AudioBufferQueueSourceNode::enqueueBuffer(
|
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
void AudioBufferQueueSourceNode::disable() {
|
|
77
|
+
if (isPaused_) {
|
|
78
|
+
playbackState_ = PlaybackState::UNSCHEDULED;
|
|
79
|
+
startTime_ = -1.0;
|
|
80
|
+
stopTime_ = -1.0;
|
|
81
|
+
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
67
85
|
audioapi::AudioNode::disable();
|
|
68
86
|
|
|
69
87
|
std::string state = "stopped";
|
|
@@ -78,6 +96,7 @@ void AudioBufferQueueSourceNode::disable() {
|
|
|
78
96
|
|
|
79
97
|
context_->audioEventHandlerRegistry_->invokeHandlerWithEventBody(
|
|
80
98
|
"ended", onEndedCallbackId_, body);
|
|
99
|
+
|
|
81
100
|
buffers_ = {};
|
|
82
101
|
}
|
|
83
102
|
|
|
@@ -116,7 +135,7 @@ void AudioBufferQueueSourceNode::setOnPositionChangedCallbackId(
|
|
|
116
135
|
void AudioBufferQueueSourceNode::sendOnPositionChangedEvent() {
|
|
117
136
|
if (onPositionChangedTime_ > onPositionChangedInterval_) {
|
|
118
137
|
std::unordered_map<std::string, EventValue> body = {
|
|
119
|
-
{"value", getStopTime()}
|
|
138
|
+
{"value", position_ + getStopTime()}};
|
|
120
139
|
|
|
121
140
|
context_->audioEventHandlerRegistry_->invokeHandlerWithEventBody(
|
|
122
141
|
"positionChanged", onPositionChangedCallbackId_, body);
|
|
@@ -209,6 +228,7 @@ void AudioBufferQueueSourceNode::processWithoutInterpolation(
|
|
|
209
228
|
framesLeft -= framesToCopy;
|
|
210
229
|
|
|
211
230
|
if (readIndex >= buffer->getLength()) {
|
|
231
|
+
position_ += buffer->getDuration();
|
|
212
232
|
buffers_.pop();
|
|
213
233
|
|
|
214
234
|
if (buffers_.empty()) {
|
|
@@ -23,7 +23,10 @@ class AudioBufferQueueSourceNode : public AudioScheduledSourceNode {
|
|
|
23
23
|
[[nodiscard]] std::shared_ptr<AudioParam> getDetuneParam() const;
|
|
24
24
|
[[nodiscard]] std::shared_ptr<AudioParam> getPlaybackRateParam() const;
|
|
25
25
|
|
|
26
|
+
void start(double when) override;
|
|
26
27
|
void start(double when, double offset);
|
|
28
|
+
void pause();
|
|
29
|
+
|
|
27
30
|
void enqueueBuffer(const std::shared_ptr<AudioBuffer> &buffer, int bufferId, bool isLastBuffer);
|
|
28
31
|
void disable() override;
|
|
29
32
|
|
|
@@ -54,11 +57,13 @@ class AudioBufferQueueSourceNode : public AudioScheduledSourceNode {
|
|
|
54
57
|
std::queue<std::pair<int, std::shared_ptr<AudioBuffer>>> buffers_;
|
|
55
58
|
int bufferId_ = 0;
|
|
56
59
|
bool isLastBuffer_ = false;
|
|
60
|
+
bool isPaused_ = false;
|
|
57
61
|
|
|
58
62
|
// positionChanged event props: callbackId, update interval in frames, time since last update in frames
|
|
59
63
|
uint64_t onPositionChangedCallbackId_ = 0;
|
|
60
64
|
int onPositionChangedInterval_;
|
|
61
65
|
int onPositionChangedTime_ = 0;
|
|
66
|
+
size_t position_ = 0;
|
|
62
67
|
|
|
63
68
|
void processWithPitchCorrection(const std::shared_ptr<AudioBus> &processingBus,
|
|
64
69
|
int framesToProcess);
|
|
@@ -23,12 +23,12 @@ class AudioScheduledSourceNode : public AudioNode {
|
|
|
23
23
|
// UNSCHEDULED: The node is not scheduled to play.
|
|
24
24
|
// SCHEDULED: The node is scheduled to play at a specific time.
|
|
25
25
|
// PLAYING: The node is currently playing.
|
|
26
|
-
// FINISHED: The node has finished playing.
|
|
27
26
|
// STOP_SCHEDULED: The node is scheduled to stop at a specific time, but is still playing.
|
|
28
|
-
|
|
27
|
+
// FINISHED: The node has finished playing.
|
|
28
|
+
enum class PlaybackState { UNSCHEDULED, SCHEDULED, PLAYING, STOP_SCHEDULED, FINISHED };
|
|
29
29
|
explicit AudioScheduledSourceNode(BaseAudioContext *context);
|
|
30
30
|
|
|
31
|
-
void start(double when);
|
|
31
|
+
virtual void start(double when);
|
|
32
32
|
void stop(double when);
|
|
33
33
|
|
|
34
34
|
bool isUnscheduled();
|
|
@@ -97,9 +97,11 @@ RCT_EXPORT_METHOD(
|
|
|
97
97
|
resolve(@"false");
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
RCT_EXPORT_METHOD(
|
|
100
|
+
RCT_EXPORT_METHOD(
|
|
101
|
+
setAudioSessionOptions : (NSString *)category mode : (NSString *)mode options : (NSArray *)
|
|
102
|
+
options allowHaptics : (BOOL)allowHaptics)
|
|
101
103
|
{
|
|
102
|
-
[self.audioSessionManager setAudioSessionOptions:category mode:mode options:options];
|
|
104
|
+
[self.audioSessionManager setAudioSessionOptions:category mode:mode options:options allowHaptics:allowHaptics];
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
RCT_EXPORT_METHOD(setLockScreenInfo : (NSDictionary *)info)
|
|
@@ -13,13 +13,17 @@
|
|
|
13
13
|
@property (nonatomic, assign) AVAudioSessionMode sessionMode;
|
|
14
14
|
@property (nonatomic, assign) AVAudioSessionCategory sessionCategory;
|
|
15
15
|
@property (nonatomic, assign) AVAudioSessionCategoryOptions sessionOptions;
|
|
16
|
+
@property (nonatomic, assign) bool allowHapticsAndSystemSoundsDuringRecording;
|
|
16
17
|
|
|
17
18
|
- (instancetype)init;
|
|
18
19
|
- (void)cleanup;
|
|
19
20
|
- (bool)configureAudioSession;
|
|
20
21
|
|
|
21
22
|
- (NSNumber *)getDevicePreferredSampleRate;
|
|
22
|
-
- (void)setAudioSessionOptions:(NSString *)category
|
|
23
|
+
- (void)setAudioSessionOptions:(NSString *)category
|
|
24
|
+
mode:(NSString *)mode
|
|
25
|
+
options:(NSArray *)options
|
|
26
|
+
allowHaptics:(BOOL)allowHaptics;
|
|
23
27
|
- (bool)setActive:(bool)active;
|
|
24
28
|
- (void)requestRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
25
29
|
- (void)checkRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
self.sessionCategory = AVAudioSessionCategoryPlayback;
|
|
11
11
|
self.sessionMode = AVAudioSessionModeDefault;
|
|
12
12
|
self.sessionOptions = 0;
|
|
13
|
+
self.allowHapticsAndSystemSoundsDuringRecording = false;
|
|
13
14
|
self.hasDirtySettings = true;
|
|
14
15
|
self.isActive = false;
|
|
15
16
|
}
|
|
@@ -29,11 +30,15 @@
|
|
|
29
30
|
return [NSNumber numberWithFloat:[self.audioSession sampleRate]];
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
- (void)setAudioSessionOptions:(NSString *)category
|
|
33
|
+
- (void)setAudioSessionOptions:(NSString *)category
|
|
34
|
+
mode:(NSString *)mode
|
|
35
|
+
options:(NSArray *)options
|
|
36
|
+
allowHaptics:(BOOL)allowHaptics
|
|
33
37
|
{
|
|
34
38
|
AVAudioSessionCategory sessionCategory = self.sessionCategory;
|
|
35
39
|
AVAudioSessionMode sessionMode = self.sessionMode;
|
|
36
40
|
AVAudioSessionCategoryOptions sessionOptions = 0;
|
|
41
|
+
bool allowHapticsAndSystemSoundsDuringRecording = allowHaptics;
|
|
37
42
|
|
|
38
43
|
if ([category isEqualToString:@"record"]) {
|
|
39
44
|
sessionCategory = AVAudioSessionCategoryRecord;
|
|
@@ -118,6 +123,11 @@
|
|
|
118
123
|
self.sessionOptions = sessionOptions;
|
|
119
124
|
}
|
|
120
125
|
|
|
126
|
+
if (self.allowHapticsAndSystemSoundsDuringRecording != allowHapticsAndSystemSoundsDuringRecording) {
|
|
127
|
+
self.hasDirtySettings = true;
|
|
128
|
+
self.allowHapticsAndSystemSoundsDuringRecording = allowHapticsAndSystemSoundsDuringRecording;
|
|
129
|
+
}
|
|
130
|
+
|
|
121
131
|
if (self.isActive) {
|
|
122
132
|
[self configureAudioSession];
|
|
123
133
|
}
|
|
@@ -157,10 +167,11 @@
|
|
|
157
167
|
}
|
|
158
168
|
|
|
159
169
|
NSLog(
|
|
160
|
-
@"[AudioSessionManager] configureAudioSession, category: %@, mode: %@, options: %lu",
|
|
170
|
+
@"[AudioSessionManager] configureAudioSession, category: %@, mode: %@, options: %lu, allowHaptics: %@",
|
|
161
171
|
self.sessionCategory,
|
|
162
172
|
self.sessionMode,
|
|
163
|
-
(unsigned long)self.sessionOptions
|
|
173
|
+
(unsigned long)self.sessionOptions,
|
|
174
|
+
self.allowHapticsAndSystemSoundsDuringRecording ? @"YES" : @"NO");
|
|
164
175
|
|
|
165
176
|
NSError *error = nil;
|
|
166
177
|
|
|
@@ -171,6 +182,15 @@
|
|
|
171
182
|
return false;
|
|
172
183
|
}
|
|
173
184
|
|
|
185
|
+
if (@available(iOS 13.0, *)) {
|
|
186
|
+
[self.audioSession setAllowHapticsAndSystemSoundsDuringRecording:self.allowHapticsAndSystemSoundsDuringRecording
|
|
187
|
+
error:&error];
|
|
188
|
+
|
|
189
|
+
if (error != nil) {
|
|
190
|
+
NSLog(@"Error while setting allowHapticsAndSystemSoundsDuringRecording: %@", [error debugDescription]);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
174
194
|
self.hasDirtySettings = false;
|
|
175
195
|
return true;
|
|
176
196
|
}
|
|
@@ -17,19 +17,20 @@ class AudioBufferQueueSourceNode extends _AudioScheduledSourceNode.default {
|
|
|
17
17
|
enqueueBuffer(buffer, bufferId = 0, isLastBuffer = false) {
|
|
18
18
|
this.node.enqueueBuffer(buffer.buffer, bufferId, isLastBuffer);
|
|
19
19
|
}
|
|
20
|
-
start(when = 0, offset
|
|
20
|
+
start(when = 0, offset) {
|
|
21
21
|
if (when < 0) {
|
|
22
22
|
throw new _errors.RangeError(`when must be a finite non-negative number: ${when}`);
|
|
23
23
|
}
|
|
24
|
-
if (offset
|
|
25
|
-
|
|
24
|
+
if (offset) {
|
|
25
|
+
if (offset < 0) {
|
|
26
|
+
throw new _errors.RangeError(`offset must be a finite non-negative number: ${offset}`);
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
|
-
if (this.hasBeenStarted) {
|
|
28
|
-
throw new _errors.InvalidStateError('Cannot call start more than once');
|
|
29
|
-
}
|
|
30
|
-
this.hasBeenStarted = true;
|
|
31
29
|
this.node.start(when, offset);
|
|
32
30
|
}
|
|
31
|
+
pause() {
|
|
32
|
+
this.node.pause();
|
|
33
|
+
}
|
|
33
34
|
|
|
34
35
|
// eslint-disable-next-line accessor-pairs
|
|
35
36
|
set onPositionChanged(callback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","_errors","e","__esModule","default","AudioBufferQueueSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","enqueueBuffer","buffer","bufferId","isLastBuffer","start","when","offset","RangeError","
|
|
1
|
+
{"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","_errors","e","__esModule","default","AudioBufferQueueSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","enqueueBuffer","buffer","bufferId","isLastBuffer","start","when","offset","RangeError","pause","onPositionChanged","callback","subscription","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferQueueSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAAuC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGxB,MAAMG,0BAA0B,SAASC,iCAAwB,CAAC;EAI/EC,WAAWA,CAACC,OAAyB,EAAEC,IAAiC,EAAE;IACxE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIC,mBAAU,CAACF,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAID,mBAAU,CAACF,IAAI,CAACG,YAAY,EAAEJ,OAAO,CAAC;EAChE;EAEOK,aAAaA,CAClBC,MAAmB,EACnBC,QAAgB,GAAG,CAAC,EACpBC,YAAqB,GAAG,KAAK,EACvB;IACL,IAAI,CAACP,IAAI,CAAiCI,aAAa,CACtDC,MAAM,CAACA,MAAM,EACbC,QAAQ,EACRC,YACF,CAAC;EACH;EAEgBC,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAQ;IAC7D,IAAID,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIE,kBAAU,CAClB,8CAA8CF,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,EAAE;MACV,IAAIA,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAIC,kBAAU,CAClB,gDAAgDD,MAAM,EACxD,CAAC;MACH;IACF;IAEC,IAAI,CAACV,IAAI,CAAiCQ,KAAK,CAACC,IAAI,EAAEC,MAAM,CAAC;EAChE;EAEOE,KAAKA,CAAA,EAAS;IAClB,IAAI,CAACZ,IAAI,CAAiCY,KAAK,CAAC,CAAC;EACpD;;EAEA;EACA,IAAWC,iBAAiBA,CAACC,QAA6C,EAAE;IAC1E,MAAMC,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAACC,qBAAqB,CAC/D,iBAAiB,EACjBH,QACF,CAAC;IAEA,IAAI,CAACd,IAAI,CAAiCa,iBAAiB,GAC1DE,YAAY,CAACG,cAAc;EAC/B;;EAEA;EACA,IAAWC,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACpB,IAAI,CAAiCmB,yBAAyB,GAClEC,KAAK;EACT;AACF;AAACC,OAAA,CAAA1B,OAAA,GAAAC,0BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AACb,IAAAC,YAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AACb,IAAAC,YAAA,GAAAC,OAAA;AAiCA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ class AudioManager {
|
|
|
23
23
|
return _specs.NativeAudioAPIModule.setAudioSessionActivity(enabled);
|
|
24
24
|
}
|
|
25
25
|
setAudioSessionOptions(options) {
|
|
26
|
-
_specs.NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
|
|
26
|
+
_specs.NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? [], options.iosAllowHaptics ?? false);
|
|
27
27
|
}
|
|
28
28
|
setLockScreenInfo(info) {
|
|
29
29
|
_specs.NativeAudioAPIModule.setLockScreenInfo(info);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,MAAM,CAACC,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,yBAAiB,CAACD,MAAM,CAACC,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAON,2BAAoB,CAAEM,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOR,2BAAoB,CAAEO,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CV,2BAAoB,CAAES,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,
|
|
1
|
+
{"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,MAAM,CAACC,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,yBAAiB,CAACD,MAAM,CAACC,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAON,2BAAoB,CAAEM,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOR,2BAAoB,CAAEO,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CV,2BAAoB,CAAES,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtChB,2BAAoB,CAAEe,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBjB,2BAAoB,CAAEiB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CR,2BAAoB,CAAEkB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCR,2BAAoB,CAAEmB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClER,2BAAoB,CAAEoB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOzB,2BAAoB,CAAEyB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO1B,2BAAoB,CAAE0B,yBAAyB,CAAC,CAAC;EAC1D;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAI1B,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import AudioScheduledSourceNode from "./AudioScheduledSourceNode.js";
|
|
4
4
|
import AudioParam from "./AudioParam.js";
|
|
5
|
-
import {
|
|
5
|
+
import { RangeError } from "../errors/index.js";
|
|
6
6
|
export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode {
|
|
7
7
|
constructor(context, node) {
|
|
8
8
|
super(context, node);
|
|
@@ -12,19 +12,20 @@ export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode
|
|
|
12
12
|
enqueueBuffer(buffer, bufferId = 0, isLastBuffer = false) {
|
|
13
13
|
this.node.enqueueBuffer(buffer.buffer, bufferId, isLastBuffer);
|
|
14
14
|
}
|
|
15
|
-
start(when = 0, offset
|
|
15
|
+
start(when = 0, offset) {
|
|
16
16
|
if (when < 0) {
|
|
17
17
|
throw new RangeError(`when must be a finite non-negative number: ${when}`);
|
|
18
18
|
}
|
|
19
|
-
if (offset
|
|
20
|
-
|
|
19
|
+
if (offset) {
|
|
20
|
+
if (offset < 0) {
|
|
21
|
+
throw new RangeError(`offset must be a finite non-negative number: ${offset}`);
|
|
22
|
+
}
|
|
21
23
|
}
|
|
22
|
-
if (this.hasBeenStarted) {
|
|
23
|
-
throw new InvalidStateError('Cannot call start more than once');
|
|
24
|
-
}
|
|
25
|
-
this.hasBeenStarted = true;
|
|
26
24
|
this.node.start(when, offset);
|
|
27
25
|
}
|
|
26
|
+
pause() {
|
|
27
|
+
this.node.pause();
|
|
28
|
+
}
|
|
28
29
|
|
|
29
30
|
// eslint-disable-next-line accessor-pairs
|
|
30
31
|
set onPositionChanged(callback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioScheduledSourceNode","AudioParam","
|
|
1
|
+
{"version":3,"names":["AudioScheduledSourceNode","AudioParam","RangeError","AudioBufferQueueSourceNode","constructor","context","node","detune","playbackRate","enqueueBuffer","buffer","bufferId","isLastBuffer","start","when","offset","pause","onPositionChanged","callback","subscription","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value"],"sourceRoot":"../../../src","sources":["core/AudioBufferQueueSourceNode.ts"],"mappings":";;AACA,OAAOA,wBAAwB,MAAM,+BAA4B;AAGjE,OAAOC,UAAU,MAAM,iBAAc;AACrC,SAASC,UAAU,QAAQ,oBAAW;AAGtC,eAAe,MAAMC,0BAA0B,SAASH,wBAAwB,CAAC;EAI/EI,WAAWA,CAACC,OAAyB,EAAEC,IAAiC,EAAE;IACxE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIN,UAAU,CAACK,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACG,YAAY,GAAG,IAAIP,UAAU,CAACK,IAAI,CAACE,YAAY,EAAEH,OAAO,CAAC;EAChE;EAEOI,aAAaA,CAClBC,MAAmB,EACnBC,QAAgB,GAAG,CAAC,EACpBC,YAAqB,GAAG,KAAK,EACvB;IACL,IAAI,CAACN,IAAI,CAAiCG,aAAa,CACtDC,MAAM,CAACA,MAAM,EACbC,QAAQ,EACRC,YACF,CAAC;EACH;EAEgBC,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAQ;IAC7D,IAAID,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIZ,UAAU,CAClB,8CAA8CY,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,EAAE;MACV,IAAIA,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAIb,UAAU,CAClB,gDAAgDa,MAAM,EACxD,CAAC;MACH;IACF;IAEC,IAAI,CAACT,IAAI,CAAiCO,KAAK,CAACC,IAAI,EAAEC,MAAM,CAAC;EAChE;EAEOC,KAAKA,CAAA,EAAS;IAClB,IAAI,CAACV,IAAI,CAAiCU,KAAK,CAAC,CAAC;EACpD;;EAEA;EACA,IAAWC,iBAAiBA,CAACC,QAA6C,EAAE;IAC1E,MAAMC,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAACC,qBAAqB,CAC/D,iBAAiB,EACjBH,QACF,CAAC;IAEA,IAAI,CAACZ,IAAI,CAAiCW,iBAAiB,GAC1DE,YAAY,CAACG,cAAc;EAC/B;;EAEA;EACA,IAAWC,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAAClB,IAAI,CAAiCiB,yBAAyB,GAClEC,KAAK;EACT;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;AAiClD,MAAMC,oBAAoB,GAAGD,mBAAmB,CAACE,GAAG,CAAO,gBAAgB,CAAC;AAE5E,SAASD,oBAAoB","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ class AudioManager {
|
|
|
19
19
|
return NativeAudioAPIModule.setAudioSessionActivity(enabled);
|
|
20
20
|
}
|
|
21
21
|
setAudioSessionOptions(options) {
|
|
22
|
-
NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
|
|
22
|
+
NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? [], options.iosAllowHaptics ?? false);
|
|
23
23
|
}
|
|
24
24
|
setLockScreenInfo(info) {
|
|
25
25
|
NativeAudioAPIModule.setLockScreenInfo(info);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAMA,SAASA,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,IAAIC,MAAM,CAACD,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACD,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAOR,oBAAoB,CAAEQ,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOV,oBAAoB,CAAES,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CZ,oBAAoB,CAAEW,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,
|
|
1
|
+
{"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAMA,SAASA,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,IAAIC,MAAM,CAACD,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACD,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAOR,oBAAoB,CAAEQ,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOV,oBAAoB,CAAES,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CZ,oBAAoB,CAAEW,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtClB,oBAAoB,CAAEiB,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBnB,oBAAoB,CAAEmB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CV,oBAAoB,CAAEoB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCV,oBAAoB,CAAEqB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClEV,oBAAoB,CAAEsB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAO3B,oBAAoB,CAAE2B,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO5B,oBAAoB,CAAE4B,yBAAyB,CAAC,CAAC;EAC1D;AACF;AAEA,eAAe,IAAIvB,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,14 +3,15 @@ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
|
3
3
|
import BaseAudioContext from './BaseAudioContext';
|
|
4
4
|
import AudioBuffer from './AudioBuffer';
|
|
5
5
|
import AudioParam from './AudioParam';
|
|
6
|
-
import {
|
|
6
|
+
import { EventTypeWithValue } from '../events/types';
|
|
7
7
|
export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode {
|
|
8
8
|
readonly playbackRate: AudioParam;
|
|
9
9
|
readonly detune: AudioParam;
|
|
10
10
|
constructor(context: BaseAudioContext, node: IAudioBufferQueueSourceNode);
|
|
11
11
|
enqueueBuffer(buffer: AudioBuffer, bufferId?: number, isLastBuffer?: boolean): void;
|
|
12
12
|
start(when?: number, offset?: number): void;
|
|
13
|
-
|
|
13
|
+
pause(): void;
|
|
14
|
+
set onPositionChanged(callback: (event: EventTypeWithValue) => void);
|
|
14
15
|
set onPositionChangedInterval(value: number);
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=AudioBufferQueueSourceNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBufferQueueSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferQueueSourceNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AudioBufferQueueSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferQueueSourceNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,wBAAwB;IAC9E,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,2BAA2B;IAOjE,aAAa,CAClB,MAAM,EAAE,WAAW,EACnB,QAAQ,GAAE,MAAU,EACpB,YAAY,GAAE,OAAe,GAC5B,IAAI;IAQS,KAAK,CAAC,IAAI,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBvD,KAAK,IAAI,IAAI;IAKpB,IAAW,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAQzE;IAGD,IAAW,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAGjD;CACF"}
|
|
@@ -9,10 +9,6 @@ export interface OnEndedEventType {
|
|
|
9
9
|
state: 'stopped' | 'ended';
|
|
10
10
|
bufferId: number | undefined;
|
|
11
11
|
}
|
|
12
|
-
export interface OnPositionChangedEventType {
|
|
13
|
-
value: number;
|
|
14
|
-
bufferId: number;
|
|
15
|
-
}
|
|
16
12
|
interface OnInterruptionEventType {
|
|
17
13
|
type: 'ended' | 'began';
|
|
18
14
|
shouldResume: boolean;
|
|
@@ -47,7 +43,7 @@ export interface OnAudioReadyEventType {
|
|
|
47
43
|
interface AudioAPIEvents {
|
|
48
44
|
ended: OnEndedEventType;
|
|
49
45
|
audioReady: OnAudioReadyEventType;
|
|
50
|
-
positionChanged:
|
|
46
|
+
positionChanged: EventTypeWithValue;
|
|
51
47
|
audioError: EventEmptyType;
|
|
52
48
|
systemStateChanged: EventEmptyType;
|
|
53
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAE9C,UAAU,cAAc;CAAG;AAE3B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAE9C,UAAU,cAAc;CAAG;AAE3B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,sBAAsB;IAC9B,MAAM,EACF,SAAS,GACT,UAAU,GACV,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,4BAA4B,CAAC;CAClC;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,qBAAqB,EAAE,cAAc,CAAC;IACtC,wBAAwB,EAAE,kBAAkB,CAAC;IAC7C,eAAe,EAAE,cAAc,CAAC;IAChC,mBAAmB,EAAE,cAAc,CAAC;IACpC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,cAAc,CAAC;IAClC,kBAAkB,EAAE,cAAc,CAAC;IACnC,4BAA4B,EAAE,kBAAkB,CAAC;CAClD;AAED,KAAK,YAAY,GAAG,mBAAmB,GAAG;IACxC,YAAY,EAAE,kBAAkB,CAAC;IACjC,YAAY,EAAE,uBAAuB,CAAC;IACtC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,kBAAkB,CAAC;IACpC,UAAU,EAAE,cAAc,CAAC;IAC3B,kBAAkB,EAAE,cAAc,CAAC;CACpC;AAED,KAAK,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAEjD,MAAM,MAAM,sBAAsB,GAAG,MAAM,mBAAmB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC;AACjD,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,eAAe,IAAI,CAC9D,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KACtB,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC;AACrD,MAAM,MAAM,qBAAqB,CAAC,IAAI,SAAS,iBAAiB,IAAI,CAClE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KACxB,IAAI,CAAC;AAEV,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC;AAC/C,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,cAAc,IAAI,CAC5D,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KACrB,IAAI,CAAC"}
|
|
@@ -55,7 +55,7 @@ export interface IBiquadFilterNode extends IAudioNode {
|
|
|
55
55
|
export interface IAudioDestinationNode extends IAudioNode {
|
|
56
56
|
}
|
|
57
57
|
export interface IAudioScheduledSourceNode extends IAudioNode {
|
|
58
|
-
start(when
|
|
58
|
+
start(when: number): void;
|
|
59
59
|
stop: (when: number) => void;
|
|
60
60
|
onended: string;
|
|
61
61
|
}
|
|
@@ -72,13 +72,14 @@ export interface IAudioBufferSourceNode extends IAudioScheduledSourceNode {
|
|
|
72
72
|
loopEnd: number;
|
|
73
73
|
detune: IAudioParam;
|
|
74
74
|
playbackRate: IAudioParam;
|
|
75
|
-
start: (when
|
|
75
|
+
start: (when: number, offset?: number, duration?: number) => void;
|
|
76
76
|
}
|
|
77
77
|
export interface IAudioBufferQueueSourceNode extends IAudioScheduledSourceNode {
|
|
78
78
|
detune: IAudioParam;
|
|
79
79
|
playbackRate: IAudioParam;
|
|
80
80
|
enqueueBuffer: (audioBuffer: IAudioBuffer, bufferId: number, isLastBuffer: boolean) => void;
|
|
81
|
-
start: (when
|
|
81
|
+
start: (when: number, offset?: number) => void;
|
|
82
|
+
pause: () => void;
|
|
82
83
|
onPositionChanged: string;
|
|
83
84
|
onPositionChangedInterval: number;
|
|
84
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ interface Spec extends TurboModule {
|
|
|
4
4
|
install(): boolean;
|
|
5
5
|
getDevicePreferredSampleRate(): number;
|
|
6
6
|
setAudioSessionActivity(enabled: boolean): Promise<boolean>;
|
|
7
|
-
setAudioSessionOptions(category: string, mode: string, options: Array<string
|
|
7
|
+
setAudioSessionOptions(category: string, mode: string, options: Array<string>, allowHaptics: boolean): void;
|
|
8
8
|
setLockScreenInfo(info: {
|
|
9
9
|
[key: string]: string | boolean | number | undefined;
|
|
10
10
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeAudioAPIModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioAPIModule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,UAAU,IAAK,SAAQ,WAAW;IAChC,OAAO,IAAI,OAAO,CAAC;IACnB,4BAA4B,IAAI,MAAM,CAAC;IAGvC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"NativeAudioAPIModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioAPIModule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,UAAU,IAAK,SAAQ,WAAW;IAChC,OAAO,IAAI,OAAO,CAAC;IACnB,4BAA4B,IAAI,MAAM,CAAC;IAGvC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,YAAY,EAAE,OAAO,GACpB,IAAI,CAAC;IAGR,iBAAiB,CAAC,IAAI,EAAE;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;KACtD,GAAG,IAAI,CAAC;IACT,mBAAmB,IAAI,IAAI,CAAC;IAG5B,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1D,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAG7C,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED,QAAA,MAAM,oBAAoB,aAAkD,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAqB,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAYtE,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;;IAKtD,4BAA4B,IAAI,MAAM;IAItC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,sBAAsB,CAAC,OAAO,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAqB,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAYtE,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;;IAKtD,4BAA4B,IAAI,MAAM;IAItC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,sBAAsB,CAAC,OAAO,EAAE,cAAc;IAS9C,iBAAiB,CAAC,IAAI,EAAE,cAAc;IAItC,mBAAmB;IAInB,yBAAyB,CAAC,OAAO,EAAE,OAAO;IAI1C,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAIrC,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO;IAIlE,sBAAsB,CAAC,IAAI,SAAS,eAAe,EACjD,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAClC,sBAAsB;IAInB,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIxD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG7D;;AAED,wBAAkC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/system/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,YAAY,GACZ,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,MAAM,OAAO,GACf,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,aAAa,GACb,aAAa,GACb,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,qCAAqC,GACrC,sCAAsC,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/system/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,YAAY,GACZ,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,MAAM,OAAO,GACf,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,aAAa,GACb,aAAa,GACb,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,qCAAqC,GACrC,sCAAsC,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.6.2-rc.
|
|
3
|
+
"version": "0.6.2-rc.2",
|
|
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"
|
|
@@ -3,8 +3,8 @@ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
|
3
3
|
import BaseAudioContext from './BaseAudioContext';
|
|
4
4
|
import AudioBuffer from './AudioBuffer';
|
|
5
5
|
import AudioParam from './AudioParam';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { RangeError } from '../errors';
|
|
7
|
+
import { EventTypeWithValue } from '../events/types';
|
|
8
8
|
|
|
9
9
|
export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode {
|
|
10
10
|
readonly playbackRate: AudioParam;
|
|
@@ -29,31 +29,30 @@ export default class AudioBufferQueueSourceNode extends AudioScheduledSourceNode
|
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
public start(when: number = 0, offset
|
|
32
|
+
public override start(when: number = 0, offset?: number): void {
|
|
33
33
|
if (when < 0) {
|
|
34
34
|
throw new RangeError(
|
|
35
35
|
`when must be a finite non-negative number: ${when}`
|
|
36
36
|
);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
if (offset
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (this.hasBeenStarted) {
|
|
46
|
-
throw new InvalidStateError('Cannot call start more than once');
|
|
39
|
+
if (offset) {
|
|
40
|
+
if (offset < 0) {
|
|
41
|
+
throw new RangeError(
|
|
42
|
+
`offset must be a finite non-negative number: ${offset}`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
this.hasBeenStarted = true;
|
|
50
47
|
(this.node as IAudioBufferQueueSourceNode).start(when, offset);
|
|
51
48
|
}
|
|
52
49
|
|
|
50
|
+
public pause(): void {
|
|
51
|
+
(this.node as IAudioBufferQueueSourceNode).pause();
|
|
52
|
+
}
|
|
53
|
+
|
|
53
54
|
// eslint-disable-next-line accessor-pairs
|
|
54
|
-
public set onPositionChanged(
|
|
55
|
-
callback: (event: OnPositionChangedEventType) => void
|
|
56
|
-
) {
|
|
55
|
+
public set onPositionChanged(callback: (event: EventTypeWithValue) => void) {
|
|
57
56
|
const subscription = this.audioEventEmitter.addAudioEventListener(
|
|
58
57
|
'positionChanged',
|
|
59
58
|
callback
|
package/src/events/types.ts
CHANGED
|
@@ -12,11 +12,6 @@ export interface OnEndedEventType {
|
|
|
12
12
|
bufferId: number | undefined;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export interface OnPositionChangedEventType {
|
|
16
|
-
value: number;
|
|
17
|
-
bufferId: number;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
15
|
interface OnInterruptionEventType {
|
|
21
16
|
type: 'ended' | 'began';
|
|
22
17
|
shouldResume: boolean;
|
|
@@ -64,7 +59,7 @@ export interface OnAudioReadyEventType {
|
|
|
64
59
|
interface AudioAPIEvents {
|
|
65
60
|
ended: OnEndedEventType;
|
|
66
61
|
audioReady: OnAudioReadyEventType;
|
|
67
|
-
positionChanged:
|
|
62
|
+
positionChanged: EventTypeWithValue;
|
|
68
63
|
audioError: EventEmptyType; // to change
|
|
69
64
|
systemStateChanged: EventEmptyType; // to change
|
|
70
65
|
}
|
package/src/interfaces.ts
CHANGED
|
@@ -85,7 +85,7 @@ export interface IBiquadFilterNode extends IAudioNode {
|
|
|
85
85
|
export interface IAudioDestinationNode extends IAudioNode {}
|
|
86
86
|
|
|
87
87
|
export interface IAudioScheduledSourceNode extends IAudioNode {
|
|
88
|
-
start(when
|
|
88
|
+
start(when: number): void;
|
|
89
89
|
stop: (when: number) => void;
|
|
90
90
|
|
|
91
91
|
// passing subscriptionId(uint_64 in cpp, string in js) to the cpp
|
|
@@ -108,7 +108,7 @@ export interface IAudioBufferSourceNode extends IAudioScheduledSourceNode {
|
|
|
108
108
|
detune: IAudioParam;
|
|
109
109
|
playbackRate: IAudioParam;
|
|
110
110
|
|
|
111
|
-
start: (when
|
|
111
|
+
start: (when: number, offset?: number, duration?: number) => void;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
export interface IAudioBufferQueueSourceNode extends IAudioScheduledSourceNode {
|
|
@@ -120,7 +120,8 @@ export interface IAudioBufferQueueSourceNode extends IAudioScheduledSourceNode {
|
|
|
120
120
|
bufferId: number,
|
|
121
121
|
isLastBuffer: boolean
|
|
122
122
|
) => void;
|
|
123
|
-
start: (when
|
|
123
|
+
start: (when: number, offset?: number) => void;
|
|
124
|
+
pause: () => void;
|
|
124
125
|
|
|
125
126
|
// passing subscriptionId(uint_64 in cpp, string in js) to the cpp
|
|
126
127
|
onPositionChanged: string;
|