react-native-audio-api 0.13.3 → 0.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/swmansion/audioapi/system/AudioEvent.kt +1 -0
- package/common/cpp/audioapi/HostObjects/sources/AudioFileSourceNodeHostObject.cpp +8 -2
- package/common/cpp/audioapi/HostObjects/sources/AudioFileSourceNodeHostObject.h +1 -0
- package/common/cpp/audioapi/HostObjects/utils/JsEnumParser.cpp +2 -0
- package/common/cpp/audioapi/core/sources/AudioFileSourceNode.cpp +15 -1
- package/common/cpp/audioapi/core/sources/AudioFileSourceNode.h +19 -0
- package/common/cpp/audioapi/core/sources/RecorderAdapterNode.cpp +12 -1
- package/common/cpp/audioapi/core/sources/RecorderAdapterNode.h +6 -0
- package/common/cpp/audioapi/core/utils/param/ParamQueueBase.hpp +1 -1
- package/common/cpp/audioapi/core/utils/param/ParamRenderQueue.cpp +35 -12
- package/common/cpp/audioapi/core/utils/param/ParamRenderQueue.h +9 -0
- package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +3 -3
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +2 -2
- package/common/cpp/audioapi/events/AudioEvent.h +1 -0
- package/common/cpp/audioapi/events/AudioEventPayload.h +11 -0
- package/common/cpp/audioapi/events/AudioEventPayloadMapping.h +1 -0
- package/common/cpp/audioapi/utils/events/BufferingStateDispatcher.cpp +49 -0
- package/common/cpp/audioapi/utils/events/BufferingStateDispatcher.h +42 -0
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +12 -1
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +195 -72
- package/ios/audioapi/ios/core/NativeAudioRecorder.h +3 -1
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +41 -14
- package/ios/audioapi/ios/core/utils/FileOptions.mm +18 -5
- package/ios/audioapi/ios/core/utils/IOSFileWriter.h +8 -0
- package/ios/audioapi/ios/core/utils/IOSFileWriter.mm +55 -8
- package/ios/audioapi/ios/core/utils/IOSRotatingFileWriter.h +3 -0
- package/ios/audioapi/ios/core/utils/IOSRotatingFileWriter.mm +16 -0
- package/ios/audioapi/ios/system/AudioEngine.h +2 -1
- package/ios/audioapi/ios/system/AudioEngine.mm +49 -23
- package/ios/audioapi/ios/system/SystemNotificationManager.mm +10 -0
- package/lib/commonjs/Audio/Audio.js +30 -3
- package/lib/commonjs/Audio/Audio.js.map +1 -1
- package/lib/commonjs/Audio/Audio.web.js +21 -3
- package/lib/commonjs/Audio/Audio.web.js.map +1 -1
- package/lib/commonjs/Audio/AudioFileSourceNode.js +20 -0
- package/lib/commonjs/Audio/AudioFileSourceNode.js.map +1 -1
- package/lib/commonjs/Audio/controls/AudioControls.js +90 -94
- package/lib/commonjs/Audio/controls/AudioControls.js.map +1 -1
- package/lib/commonjs/Audio/controls/audioControlUtils.js +48 -18
- package/lib/commonjs/Audio/controls/audioControlUtils.js.map +1 -1
- package/lib/commonjs/Audio/index.js +7 -0
- package/lib/commonjs/Audio/index.js.map +1 -1
- package/lib/commonjs/Audio/utils.js +16 -5
- package/lib/commonjs/Audio/utils.js.map +1 -1
- package/lib/commonjs/AudioAPIModule/AudioAPIModule.js +1 -1
- package/lib/commonjs/core/AudioDecoder.js +4 -1
- package/lib/commonjs/core/AudioDecoder.js.map +1 -1
- package/lib/module/Audio/Audio.js +30 -3
- package/lib/module/Audio/Audio.js.map +1 -1
- package/lib/module/Audio/Audio.web.js +21 -3
- package/lib/module/Audio/Audio.web.js.map +1 -1
- package/lib/module/Audio/AudioFileSourceNode.js +20 -0
- package/lib/module/Audio/AudioFileSourceNode.js.map +1 -1
- package/lib/module/Audio/controls/AudioControls.js +92 -96
- package/lib/module/Audio/controls/AudioControls.js.map +1 -1
- package/lib/module/Audio/controls/audioControlUtils.js +48 -19
- package/lib/module/Audio/controls/audioControlUtils.js.map +1 -1
- package/lib/module/Audio/index.js +1 -0
- package/lib/module/Audio/index.js.map +1 -1
- package/lib/module/Audio/utils.js +15 -5
- package/lib/module/Audio/utils.js.map +1 -1
- package/lib/module/AudioAPIModule/AudioAPIModule.js +1 -1
- package/lib/module/core/AudioDecoder.js +4 -1
- package/lib/module/core/AudioDecoder.js.map +1 -1
- package/lib/typescript/Audio/Audio.d.ts.map +1 -1
- package/lib/typescript/Audio/Audio.web.d.ts.map +1 -1
- package/lib/typescript/Audio/AudioFileSourceNode.d.ts +2 -0
- package/lib/typescript/Audio/AudioFileSourceNode.d.ts.map +1 -1
- package/lib/typescript/Audio/controls/AudioControls.d.ts.map +1 -1
- package/lib/typescript/Audio/controls/audioControlUtils.d.ts +11 -4
- package/lib/typescript/Audio/controls/audioControlUtils.d.ts.map +1 -1
- package/lib/typescript/Audio/index.d.ts +1 -0
- package/lib/typescript/Audio/index.d.ts.map +1 -1
- package/lib/typescript/Audio/types.d.ts +15 -1
- package/lib/typescript/Audio/types.d.ts.map +1 -1
- package/lib/typescript/Audio/utils.d.ts +2 -1
- package/lib/typescript/Audio/utils.d.ts.map +1 -1
- package/lib/typescript/core/AudioDecoder.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +5 -0
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/jsi-interfaces.d.ts +1 -0
- package/lib/typescript/jsi-interfaces.d.ts.map +1 -1
- package/package.json +8 -8
- package/scripts/validate-worklets-version.js +1 -1
- package/src/Audio/Audio.tsx +38 -2
- package/src/Audio/Audio.web.tsx +26 -2
- package/src/Audio/AudioFileSourceNode.ts +28 -0
- package/src/Audio/controls/AudioControls.tsx +117 -116
- package/src/Audio/controls/audioControlUtils.ts +63 -31
- package/src/Audio/index.ts +1 -0
- package/src/Audio/types.ts +15 -1
- package/src/Audio/utils.ts +20 -2
- package/src/AudioAPIModule/AudioAPIModule.ts +1 -1
- package/src/core/AudioDecoder.ts +5 -3
- package/src/events/types.ts +6 -0
- package/src/jsi-interfaces.ts +1 -0
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
@interface AudioEngineInputRegistration : NSObject
|
|
18
18
|
|
|
19
19
|
@property (nonatomic, copy) AVAudioSinkNodeReceiverBlock receiverBlock;
|
|
20
|
+
@property (nonatomic, copy) void (^onInputConfigurationChange)(void);
|
|
20
21
|
|
|
21
22
|
@end
|
|
22
23
|
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
@end
|
|
25
26
|
|
|
26
27
|
@interface AudioEngine () {
|
|
27
|
-
std::
|
|
28
|
+
std::recursive_mutex _engineLock;
|
|
28
29
|
BOOL _isRebuildingAudioEngine;
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -43,6 +44,7 @@
|
|
|
43
44
|
- (AVAudioFormat *)liveInputFormat;
|
|
44
45
|
- (void)resetInputNode;
|
|
45
46
|
- (void)rebuildAudioEngineAndResumeIfNeeded;
|
|
47
|
+
- (void)notifyConfigurationChanges;
|
|
46
48
|
|
|
47
49
|
@end
|
|
48
50
|
|
|
@@ -161,6 +163,29 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
161
163
|
[self.audioEngine connect:sourceNode to:self.audioEngine.mainMixerNode format:format];
|
|
162
164
|
}
|
|
163
165
|
|
|
166
|
+
- (AVAudioFormat *)liveInputFormat
|
|
167
|
+
{
|
|
168
|
+
std::scoped_lock lock(_engineLock);
|
|
169
|
+
|
|
170
|
+
if (self.audioEngine == nil) {
|
|
171
|
+
return nil;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
AVAudioInputNode *engineInputNode = self.audioEngine.inputNode;
|
|
175
|
+
|
|
176
|
+
if (engineInputNode == nil) {
|
|
177
|
+
return nil;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
AVAudioFormat *inputFormat = [engineInputNode outputFormatForBus:0];
|
|
181
|
+
|
|
182
|
+
if (inputFormat == nil || inputFormat.sampleRate <= 0 || inputFormat.channelCount == 0) {
|
|
183
|
+
return nil;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return inputFormat;
|
|
187
|
+
}
|
|
188
|
+
|
|
164
189
|
- (AVAudioFormat *)currentInputConnectionFormat
|
|
165
190
|
{
|
|
166
191
|
AVAudioFormat *inputFormat = [self liveInputFormat];
|
|
@@ -186,6 +211,14 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
186
211
|
return YES;
|
|
187
212
|
}
|
|
188
213
|
|
|
214
|
+
NSError *sessionError = nil;
|
|
215
|
+
if (![self.sessionManager ensureActive:true error:&sessionError]) {
|
|
216
|
+
NSLog(
|
|
217
|
+
@"Error while activating audio session before input materialization: %@",
|
|
218
|
+
[sessionError debugDescription]);
|
|
219
|
+
return NO;
|
|
220
|
+
}
|
|
221
|
+
|
|
189
222
|
AVAudioFormat *inputFormat = [self currentInputConnectionFormat];
|
|
190
223
|
|
|
191
224
|
if (inputFormat == nil) {
|
|
@@ -253,6 +286,7 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
253
286
|
}
|
|
254
287
|
|
|
255
288
|
- (void)attachInputNodeWithReceiverBlock:(AVAudioSinkNodeReceiverBlock)receiverBlock
|
|
289
|
+
onInputConfigurationChange:(void (^)(void))onInputConfigurationChange
|
|
256
290
|
{
|
|
257
291
|
std::scoped_lock lock(_engineLock);
|
|
258
292
|
[self createAudioEngineIfNeeded];
|
|
@@ -263,6 +297,7 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
263
297
|
|
|
264
298
|
AudioEngineInputRegistration *registration = [[AudioEngineInputRegistration alloc] init];
|
|
265
299
|
registration.receiverBlock = receiverBlock;
|
|
300
|
+
registration.onInputConfigurationChange = onInputConfigurationChange;
|
|
266
301
|
self.inputRegistration = registration;
|
|
267
302
|
|
|
268
303
|
[self materializeInputNodeIfNeeded];
|
|
@@ -292,30 +327,8 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
292
327
|
[self resetInputNode];
|
|
293
328
|
}
|
|
294
329
|
|
|
295
|
-
- (AVAudioFormat *)liveInputFormat
|
|
296
|
-
{
|
|
297
|
-
if (self.audioEngine == nil) {
|
|
298
|
-
return nil;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
AVAudioInputNode *engineInputNode = self.audioEngine.inputNode;
|
|
302
|
-
|
|
303
|
-
if (engineInputNode == nil) {
|
|
304
|
-
return nil;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
AVAudioFormat *inputFormat = [engineInputNode outputFormatForBus:0];
|
|
308
|
-
|
|
309
|
-
if (inputFormat == nil || inputFormat.sampleRate <= 0 || inputFormat.channelCount == 0) {
|
|
310
|
-
return nil;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
return inputFormat;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
330
|
- (AVAudioFormat *)getLiveInputFormat
|
|
317
331
|
{
|
|
318
|
-
std::scoped_lock lock(_engineLock);
|
|
319
332
|
return [self liveInputFormat];
|
|
320
333
|
}
|
|
321
334
|
|
|
@@ -377,6 +390,7 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
377
390
|
|
|
378
391
|
if (!shouldResume) {
|
|
379
392
|
self.state = AudioEngineState::AudioEngineStatePaused;
|
|
393
|
+
[self notifyConfigurationChanges];
|
|
380
394
|
return;
|
|
381
395
|
}
|
|
382
396
|
|
|
@@ -388,11 +402,20 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
388
402
|
@"Error while restarting the audio engine after interruption: %@",
|
|
389
403
|
[error debugDescription]);
|
|
390
404
|
self.state = AudioEngineState::AudioEngineStateIdle;
|
|
405
|
+
[self notifyConfigurationChanges];
|
|
391
406
|
return;
|
|
392
407
|
}
|
|
393
408
|
|
|
394
409
|
self.state = AudioEngineState::AudioEngineStateRunning;
|
|
395
410
|
self.sessionDeactivationInvalidatedGraph = false;
|
|
411
|
+
[self notifyConfigurationChanges];
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
- (void)notifyConfigurationChanges
|
|
415
|
+
{
|
|
416
|
+
if (self.inputRegistration != nil && self.inputRegistration.onInputConfigurationChange != nil) {
|
|
417
|
+
self.inputRegistration.onInputConfigurationChange();
|
|
418
|
+
}
|
|
396
419
|
}
|
|
397
420
|
|
|
398
421
|
- (AudioEngineState)getState
|
|
@@ -426,6 +449,8 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
426
449
|
[self startEngine];
|
|
427
450
|
}
|
|
428
451
|
|
|
452
|
+
[self notifyConfigurationChanges];
|
|
453
|
+
|
|
429
454
|
_isRebuildingAudioEngine = NO;
|
|
430
455
|
}
|
|
431
456
|
|
|
@@ -497,6 +522,7 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
497
522
|
std::scoped_lock lock(_engineLock);
|
|
498
523
|
if (self.state == AudioEngineState::AudioEngineStateRunning && self.audioEngine != nil &&
|
|
499
524
|
[self.audioEngine isRunning]) {
|
|
525
|
+
[self materializeTrackedNodesIfNeeded];
|
|
500
526
|
return true;
|
|
501
527
|
}
|
|
502
528
|
|
|
@@ -218,6 +218,16 @@ static NSString *NotificationManagerContext = @"SystemNotificationManagerContext
|
|
|
218
218
|
invokeHandlerWithEventName:audioapi::AudioEvent::ROUTE_CHANGE
|
|
219
219
|
payload:audioapi::StringPayload{
|
|
220
220
|
.name = "reason", .reason = [reasonStr UTF8String]}];
|
|
221
|
+
|
|
222
|
+
switch (routeChangeReason) {
|
|
223
|
+
case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
|
|
224
|
+
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
|
|
225
|
+
case AVAudioSessionRouteChangeReasonRouteConfigurationChange:
|
|
226
|
+
[self handleEngineConfigurationChange:nil];
|
|
227
|
+
break;
|
|
228
|
+
default:
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
221
231
|
}
|
|
222
232
|
|
|
223
233
|
- (void)handleMediaServicesReset:(NSNotification *)notification
|
|
@@ -36,13 +36,20 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
36
36
|
onEnded: onEndedCallback,
|
|
37
37
|
onPlay,
|
|
38
38
|
onPause,
|
|
39
|
-
onVolumeChange
|
|
39
|
+
onVolumeChange,
|
|
40
|
+
onWaiting,
|
|
41
|
+
onPlaying
|
|
40
42
|
} = (0, _utils.useStableAudioProps)(props);
|
|
41
43
|
const [volumeState, setVolumeState] = (0, _react.useState)(null);
|
|
42
44
|
const [mutedState, setMutedState] = (0, _react.useState)(null);
|
|
43
45
|
const [ready, setReady] = (0, _react.useState)(false);
|
|
44
46
|
const [playbackState, setPlaybackState] = (0, _react.useState)('idle');
|
|
47
|
+
const [isBuffering, setIsBuffering] = (0, _react.useState)(false);
|
|
45
48
|
const [currentTime, setCurrentTime] = (0, _react.useState)(0);
|
|
49
|
+
|
|
50
|
+
// Derived rather than folded into playbackState directly, so the
|
|
51
|
+
// buffering-subscription effect below isn't torn down on every stall.
|
|
52
|
+
const publicPlaybackState = (0, _react.useMemo)(() => playbackState === 'playing' && isBuffering ? 'buffering' : playbackState, [playbackState, isBuffering]);
|
|
46
53
|
const path = (0, _react.useMemo)(() => (0, _utils.resolveSourcePath)(source), [source]);
|
|
47
54
|
const lastEffectiveVolumeRef = (0, _react.useRef)(muted ? 0 : volume);
|
|
48
55
|
(0, _react.useEffect)(() => {
|
|
@@ -164,6 +171,26 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
164
171
|
fileSource?.stopPositionTracking();
|
|
165
172
|
};
|
|
166
173
|
}, [onPositionChange, playbackState, fileSourceRef]);
|
|
174
|
+
(0, _react.useEffect)(() => {
|
|
175
|
+
if (playbackState !== 'playing') {
|
|
176
|
+
// Not an active stall (paused/idle/ended) — clear any stale flag from
|
|
177
|
+
// a stall that was in progress when playback stopped.
|
|
178
|
+
setIsBuffering(false);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const fileSource = fileSourceRef.current;
|
|
182
|
+
fileSource?.startBufferingTracking(buffering => {
|
|
183
|
+
setIsBuffering(buffering);
|
|
184
|
+
if (buffering) {
|
|
185
|
+
onWaiting();
|
|
186
|
+
} else {
|
|
187
|
+
onPlaying();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
return () => {
|
|
191
|
+
fileSource?.stopBufferingTracking();
|
|
192
|
+
};
|
|
193
|
+
}, [onWaiting, onPlaying, playbackState, fileSourceRef]);
|
|
167
194
|
(0, _react.useImperativeHandle)(ref, () => ({
|
|
168
195
|
play,
|
|
169
196
|
pause,
|
|
@@ -182,7 +209,7 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
182
209
|
ready,
|
|
183
210
|
setMuted: setMutedState,
|
|
184
211
|
muted: effectiveMutedState,
|
|
185
|
-
playbackState,
|
|
212
|
+
playbackState: publicPlaybackState,
|
|
186
213
|
currentTime,
|
|
187
214
|
duration,
|
|
188
215
|
autoPlay,
|
|
@@ -193,7 +220,7 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
193
220
|
preservesPitch,
|
|
194
221
|
sourcePath: path,
|
|
195
222
|
source
|
|
196
|
-
}), [play, pause, seekToTime, setVolumeState, effectiveVolumeState, ready, setMutedState, effectiveMutedState,
|
|
223
|
+
}), [play, pause, seekToTime, setVolumeState, effectiveVolumeState, ready, setMutedState, effectiveMutedState, publicPlaybackState, currentTime, duration, autoPlay, controls, loop, preload, playbackRate, preservesPitch, path, source]);
|
|
197
224
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AudioTagContext.AudioComponentContext.Provider, {
|
|
198
225
|
value: ctxValue,
|
|
199
226
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AudioTagContext","_utils","_AudioControls","_interopRequireDefault","_useAudioSourceLoader","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Audio","React","memo","forwardRef","props","ref","children","autoPlay","controls","loop","muted","preload","forceDownload","source","playbackRate","preservesPitch","volume","context","onLoadStart","onLoad","onError","onPositionChange","onEnded","onEndedCallback","onPlay","onPause","onVolumeChange","useStableAudioProps","volumeState","setVolumeState","useState","mutedState","setMutedState","ready","setReady","playbackState","setPlaybackState","currentTime","setCurrentTime","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AudioTagContext","_utils","_AudioControls","_interopRequireDefault","_useAudioSourceLoader","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Audio","React","memo","forwardRef","props","ref","children","autoPlay","controls","loop","muted","preload","forceDownload","source","playbackRate","preservesPitch","volume","context","onLoadStart","onLoad","onError","onPositionChange","onEnded","onEndedCallback","onPlay","onPause","onVolumeChange","onWaiting","onPlaying","useStableAudioProps","volumeState","setVolumeState","useState","mutedState","setMutedState","ready","setReady","playbackState","setPlaybackState","isBuffering","setIsBuffering","currentTime","setCurrentTime","publicPlaybackState","useMemo","path","resolveSourcePath","lastEffectiveVolumeRef","useRef","useEffect","fileSourceRef","current","disconnect","pause","dispose","effectiveMutedState","effectiveVolumeState","effectiveVolumeRef","playRef","handleAutoPlay","useCallback","handleEnded","endedDuration","loaderReady","duration","loadForPlayback","useAudioSourceLoader","preloadMode","onAutoPlay","setVolume","play","loaded","setPlaybackRate","nextPlaybackRate","seekToTime","seconds","nextTime","Math","max","min","setLoop","setPreservesPitch","fileSource","startPositionTracking","stopPositionTracking","startBufferingTracking","buffering","stopBufferingTracking","useImperativeHandle","setMuted","getFileSourceNode","ctxValue","sourcePath","jsx","AudioComponentContext","Provider","value","jsxs","View","style","alignSelf","width","_default","exports"],"sourceRoot":"../../../src","sources":["Audio/Audio.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,15 +31,23 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
31
31
|
onEnded: onEndedCallback,
|
|
32
32
|
onPlay,
|
|
33
33
|
onPause,
|
|
34
|
-
onVolumeChange
|
|
34
|
+
onVolumeChange,
|
|
35
|
+
onWaiting,
|
|
36
|
+
onPlaying
|
|
35
37
|
} = (0, _utils.useStableAudioProps)(props);
|
|
36
38
|
const audioRef = (0, _react.useRef)(null);
|
|
37
39
|
const [volumeState, setVolumeState] = (0, _react.useState)(volume);
|
|
38
40
|
const [mutedState, setMutedState] = (0, _react.useState)(null);
|
|
39
41
|
const [ready, setReady] = (0, _react.useState)(false);
|
|
40
42
|
const [playbackState, setPlaybackState] = (0, _react.useState)('idle');
|
|
43
|
+
const [isBuffering, setIsBuffering] = (0, _react.useState)(false);
|
|
41
44
|
const [currentTime, setCurrentTime] = (0, _react.useState)(0);
|
|
42
45
|
const [duration, setDuration] = (0, _react.useState)(0);
|
|
46
|
+
|
|
47
|
+
// See the native Audio.tsx's identical comment: kept derived rather than
|
|
48
|
+
// folded into playbackState so a stall starting/ending doesn't have to
|
|
49
|
+
// tear down whatever effect is watching playbackState.
|
|
50
|
+
const publicPlaybackState = (0, _react.useMemo)(() => playbackState === 'playing' && isBuffering ? 'buffering' : playbackState, [playbackState, isBuffering]);
|
|
43
51
|
const lastElementVolumeRef = (0, _react.useRef)(muted ? 0 : volume);
|
|
44
52
|
const effectiveMutedState = (0, _react.useMemo)(() => {
|
|
45
53
|
return mutedState ?? muted;
|
|
@@ -164,7 +172,7 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
164
172
|
volume: reportedVolumeState,
|
|
165
173
|
setMuted,
|
|
166
174
|
muted: effectiveMutedState,
|
|
167
|
-
playbackState,
|
|
175
|
+
playbackState: publicPlaybackState,
|
|
168
176
|
currentTime,
|
|
169
177
|
duration,
|
|
170
178
|
autoPlay,
|
|
@@ -174,7 +182,7 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
174
182
|
playbackRate,
|
|
175
183
|
preservesPitch,
|
|
176
184
|
audioContext: null
|
|
177
|
-
}), [play, pause, seekToTime, setVolume, ready, reportedVolumeState, setMuted, effectiveMutedState,
|
|
185
|
+
}), [play, pause, seekToTime, setVolume, ready, reportedVolumeState, setMuted, effectiveMutedState, publicPlaybackState, currentTime, duration, autoPlay, controls, loop, preload, playbackRate, preservesPitch]);
|
|
178
186
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AudioTagContext.AudioComponentContext.Provider, {
|
|
179
187
|
value: ctxValue,
|
|
180
188
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
@@ -204,16 +212,26 @@ const Audio = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
|
|
|
204
212
|
},
|
|
205
213
|
onPause: () => {
|
|
206
214
|
setPlaybackState(state => state === 'playing' ? 'paused' : state);
|
|
215
|
+
setIsBuffering(false);
|
|
207
216
|
onPause();
|
|
208
217
|
},
|
|
209
218
|
onEnded: () => {
|
|
210
219
|
setPlaybackState('idle');
|
|
211
220
|
setCurrentTime(duration);
|
|
221
|
+
setIsBuffering(false);
|
|
212
222
|
onEndedCallback();
|
|
213
223
|
},
|
|
214
224
|
onError: () => {
|
|
215
225
|
setReady(false);
|
|
216
226
|
onError(new Error('Failed to load audio element source'));
|
|
227
|
+
},
|
|
228
|
+
onWaiting: () => {
|
|
229
|
+
setIsBuffering(true);
|
|
230
|
+
onWaiting();
|
|
231
|
+
},
|
|
232
|
+
onPlaying: () => {
|
|
233
|
+
setIsBuffering(false);
|
|
234
|
+
onPlaying();
|
|
217
235
|
}
|
|
218
236
|
}), children]
|
|
219
237
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AudioTagContext","_utils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Audio","React","memo","forwardRef","props","ref","children","autoPlay","controls","loop","muted","preload","source","playbackRate","preservesPitch","volume","onLoadStart","onLoad","onError","onPositionChange","onEnded","onEndedCallback","onPlay","onPause","onVolumeChange","useStableAudioProps","audioRef","useRef","volumeState","setVolumeState","useState","mutedState","setMutedState","ready","setReady","playbackState","setPlaybackState","currentTime","setCurrentTime","duration","setDuration","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AudioTagContext","_utils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Audio","React","memo","forwardRef","props","ref","children","autoPlay","controls","loop","muted","preload","source","playbackRate","preservesPitch","volume","onLoadStart","onLoad","onError","onPositionChange","onEnded","onEndedCallback","onPlay","onPause","onVolumeChange","onWaiting","onPlaying","useStableAudioProps","audioRef","useRef","volumeState","setVolumeState","useState","mutedState","setMutedState","ready","setReady","playbackState","setPlaybackState","isBuffering","setIsBuffering","currentTime","setCurrentTime","duration","setDuration","publicPlaybackState","useMemo","lastElementVolumeRef","effectiveMutedState","effectiveVolumeState","reportedVolumeState","path","Error","uri","useEffect","el","current","handleTimeUpdate","handleVolumeChange","nextMuted","nextVolume","addEventListener","removeEventListener","play","useCallback","pause","seekToTime","seconds","nextTime","Math","max","min","setVolume","next","setMuted","setPlaybackRate","nextPlaybackRate","useImperativeHandle","ctxValue","audioContext","jsx","AudioComponentContext","Provider","value","jsxs","View","style","alignSelf","width","src","onLoadedData","state","_default","exports"],"sourceRoot":"../../../src","sources":["Audio/Audio.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,10 @@ class AudioFileSourceNode extends _AudioScheduledSourceNode.default {
|
|
|
24
24
|
this.resetNodeAndSubscriptions();
|
|
25
25
|
}
|
|
26
26
|
play() {
|
|
27
|
+
if (!this.node.routedThroughMediaElement) {
|
|
28
|
+
this.connect(this.context.destination);
|
|
29
|
+
}
|
|
30
|
+
// copied from audioscheduledsourcenode, so it can bypass requirement of being started only once
|
|
27
31
|
this.node.start(this.context.currentTime);
|
|
28
32
|
}
|
|
29
33
|
pause() {
|
|
@@ -71,9 +75,25 @@ class AudioFileSourceNode extends _AudioScheduledSourceNode.default {
|
|
|
71
75
|
this.node.onPositionChanged = '0';
|
|
72
76
|
}
|
|
73
77
|
}
|
|
78
|
+
startBufferingTracking(onBufferingChange) {
|
|
79
|
+
if (!this.node) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.stopBufferingTracking();
|
|
83
|
+
const sub = this.emitter.addAudioEventListener('bufferingStateChanged', event => {
|
|
84
|
+
onBufferingChange(event.value);
|
|
85
|
+
});
|
|
86
|
+
this.node.onBufferingStateChanged = sub.subscriptionId;
|
|
87
|
+
}
|
|
88
|
+
stopBufferingTracking() {
|
|
89
|
+
if (this.node) {
|
|
90
|
+
this.node.onBufferingStateChanged = '0';
|
|
91
|
+
}
|
|
92
|
+
}
|
|
74
93
|
resetNodeAndSubscriptions() {
|
|
75
94
|
if (this.node) {
|
|
76
95
|
this.node.onPositionChanged = '0';
|
|
96
|
+
this.node.onBufferingStateChanged = '0';
|
|
77
97
|
this.node.onEnded = '0';
|
|
78
98
|
this.node.disconnect(undefined);
|
|
79
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_AudioScheduledSourceNode","_interopRequireDefault","e","__esModule","default","MAX_PLAYBACK_RATE","AudioFileSourceNode","AudioScheduledSourceNode","emitter","AudioEventEmitter","globalThis","attach","options","resetNodeAndSubscriptions","sub","addAudioEventListener","_event","onEnded","node","subscriptionId","duration","dispose","play","
|
|
1
|
+
{"version":3,"names":["_events","require","_AudioScheduledSourceNode","_interopRequireDefault","e","__esModule","default","MAX_PLAYBACK_RATE","AudioFileSourceNode","AudioScheduledSourceNode","emitter","AudioEventEmitter","globalThis","attach","options","resetNodeAndSubscriptions","sub","addAudioEventListener","_event","onEnded","node","subscriptionId","duration","dispose","play","routedThroughMediaElement","connect","context","destination","start","currentTime","pause","seekToTime","seconds","setVolume","value","volume","setLoop","loop","setPlaybackRate","Number","isFinite","Error","playbackRate","setPreservesPitch","preservesPitch","getFileSourceNode","getDuration","getCurrentTime","startPositionTracking","onTime","stopPositionTracking","event","onPositionChanged","startBufferingTracking","onBufferingChange","stopBufferingTracking","onBufferingStateChanged","disconnect","undefined","exports"],"sourceRoot":"../../../src","sources":["Audio/AudioFileSourceNode.ts"],"mappings":"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","ignoreList":[]}
|