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
|
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
-
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
|
-
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
11
9
|
var _AudioTagContext = require("../AudioTagContext");
|
|
10
|
+
var _utils = require("../utils");
|
|
12
11
|
var _audioControlUtils = require("./audioControlUtils");
|
|
13
12
|
var _play = _interopRequireDefault(require("./icons/play.png"));
|
|
14
13
|
var _pause = _interopRequireDefault(require("./icons/pause.png"));
|
|
@@ -20,7 +19,9 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
20
19
|
const TRACK_BAR_HEIGHT = 12;
|
|
21
20
|
const TRACK_BAR_HEIGHT_PRESSED = 18;
|
|
22
21
|
const TRACK_BAR_ANIM_MS = 150;
|
|
23
|
-
const
|
|
22
|
+
const BUFFERING_SWEEP_MS = 1100;
|
|
23
|
+
const BUFFERING_SWEEP_WIDTH_RATIO = 0.35;
|
|
24
|
+
const BUFFERING_SWEEP_SLICE_OPACITIES = [0.04, 0.18, 0.45, 0.6, 0.45, 0.18, 0.04];
|
|
24
25
|
const AudioControls = () => {
|
|
25
26
|
const {
|
|
26
27
|
ready,
|
|
@@ -35,72 +36,60 @@ const AudioControls = () => {
|
|
|
35
36
|
} = (0, _AudioTagContext.useAudioTagContext)();
|
|
36
37
|
const progressTrackAnim = (0, _audioControlUtils.useExpandableTrackHeight)(TRACK_BAR_HEIGHT, TRACK_BAR_HEIGHT_PRESSED, TRACK_BAR_ANIM_MS);
|
|
37
38
|
const [scrubTime, setScrubTime] = (0, _react.useState)(null);
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
}).onEnd(e => {
|
|
79
|
-
onEnd(e.x);
|
|
80
|
-
}).onFinalize((_e, success) => {
|
|
81
|
-
if (!success) {
|
|
82
|
-
onCancel();
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
const tapGesture = _reactNativeGestureHandler.Gesture.Tap().runOnJS(true).maxDistance(14).onEnd((e, success) => {
|
|
86
|
-
if (success) {
|
|
87
|
-
onTapSeek(e.x);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
return _reactNativeGestureHandler.Gesture.Race(panGesture, tapGesture);
|
|
91
|
-
}, [onStart, onUpdate, onEnd, onCancel, onTapSeek]);
|
|
39
|
+
const [trackWidth, setTrackWidth] = (0, _react.useState)(0);
|
|
40
|
+
const isBuffering = playbackState === 'buffering';
|
|
41
|
+
const bufferingSweepStyle = (0, _audioControlUtils.useBufferingSweep)(isBuffering, trackWidth, BUFFERING_SWEEP_WIDTH_RATIO, BUFFERING_SWEEP_MS);
|
|
42
|
+
const scrub = (0, _react.useRef)({
|
|
43
|
+
startX: 0,
|
|
44
|
+
trackWidth: 0,
|
|
45
|
+
duration,
|
|
46
|
+
seekToTime,
|
|
47
|
+
expand: progressTrackAnim.expand,
|
|
48
|
+
collapse: progressTrackAnim.collapse
|
|
49
|
+
});
|
|
50
|
+
scrub.current.duration = duration;
|
|
51
|
+
scrub.current.seekToTime = seekToTime;
|
|
52
|
+
scrub.current.expand = progressTrackAnim.expand;
|
|
53
|
+
scrub.current.collapse = progressTrackAnim.collapse;
|
|
54
|
+
const panResponder = (0, _react.useMemo)(() => _reactNative.PanResponder.create({
|
|
55
|
+
onStartShouldSetPanResponder: () => true,
|
|
56
|
+
onMoveShouldSetPanResponder: () => true,
|
|
57
|
+
onPanResponderTerminationRequest: () => false,
|
|
58
|
+
onPanResponderGrant: event => {
|
|
59
|
+
const s = scrub.current;
|
|
60
|
+
s.startX = event.nativeEvent.locationX;
|
|
61
|
+
s.expand();
|
|
62
|
+
setScrubTime((0, _audioControlUtils.timeFromLocationX)(s.startX, s.trackWidth, s.duration));
|
|
63
|
+
},
|
|
64
|
+
onPanResponderMove: (_event, gestureState) => {
|
|
65
|
+
const s = scrub.current;
|
|
66
|
+
setScrubTime((0, _audioControlUtils.timeFromLocationX)(s.startX + gestureState.dx, s.trackWidth, s.duration));
|
|
67
|
+
},
|
|
68
|
+
onPanResponderRelease: (_event, gestureState) => {
|
|
69
|
+
const s = scrub.current;
|
|
70
|
+
s.seekToTime((0, _audioControlUtils.timeFromLocationX)(s.startX + gestureState.dx, s.trackWidth, s.duration));
|
|
71
|
+
s.collapse();
|
|
72
|
+
setScrubTime(null);
|
|
73
|
+
},
|
|
74
|
+
onPanResponderTerminate: () => {
|
|
75
|
+
scrub.current.collapse();
|
|
76
|
+
setScrubTime(null);
|
|
77
|
+
}
|
|
78
|
+
}), []);
|
|
92
79
|
const onPlayPausePress = (0, _react.useCallback)(() => {
|
|
93
|
-
if (
|
|
80
|
+
if ((0, _utils.isPlaybackActive)(playbackState)) {
|
|
94
81
|
pause();
|
|
95
82
|
} else {
|
|
96
83
|
play();
|
|
97
84
|
}
|
|
98
85
|
}, [playbackState, pause, play]);
|
|
99
|
-
const onProgressTrackLayout = (0, _react.useCallback)(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
86
|
+
const onProgressTrackLayout = (0, _react.useCallback)(event => {
|
|
87
|
+
const {
|
|
88
|
+
width
|
|
89
|
+
} = event.nativeEvent.layout;
|
|
90
|
+
scrub.current.trackWidth = width;
|
|
91
|
+
setTrackWidth(width);
|
|
92
|
+
}, []);
|
|
104
93
|
if (!ready) {
|
|
105
94
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
106
95
|
style: styles.container,
|
|
@@ -119,53 +108,45 @@ const AudioControls = () => {
|
|
|
119
108
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
120
109
|
style: styles.playPause,
|
|
121
110
|
onPress: onPlayPausePress,
|
|
122
|
-
children: playbackState
|
|
111
|
+
children: (0, _utils.isPlaybackActive)(playbackState) ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
123
112
|
source: _pause.default,
|
|
124
|
-
style:
|
|
125
|
-
width: 24,
|
|
126
|
-
height: 24
|
|
127
|
-
}
|
|
113
|
+
style: styles.icon
|
|
128
114
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
129
115
|
source: _play.default,
|
|
130
|
-
style:
|
|
131
|
-
width: 24,
|
|
132
|
-
height: 24
|
|
133
|
-
}
|
|
116
|
+
style: styles.icon
|
|
134
117
|
})
|
|
135
118
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
136
119
|
style: styles.timeText,
|
|
137
120
|
children: [(0, _audioControlUtils.formatTime)(displayTime), " / ", (0, _audioControlUtils.formatTime)(duration)]
|
|
138
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
style: styles.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
121
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
122
|
+
onLayout: onProgressTrackLayout,
|
|
123
|
+
style: styles.progressTrack,
|
|
124
|
+
...panResponder.panHandlers,
|
|
125
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
|
|
126
|
+
style: [styles.trackInner, progressTrackAnim.animatedStyle],
|
|
127
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
128
|
+
style: [styles.trackFill, {
|
|
129
|
+
width: `${progress * 100}%`
|
|
130
|
+
}]
|
|
131
|
+
}), isBuffering && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
132
|
+
pointerEvents: "none",
|
|
133
|
+
style: [styles.bufferingSweep, bufferingSweepStyle],
|
|
134
|
+
children: BUFFERING_SWEEP_SLICE_OPACITIES.map((opacity, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
135
|
+
style: [styles.bufferingSweepSlice, {
|
|
136
|
+
opacity
|
|
150
137
|
}]
|
|
151
|
-
})
|
|
152
|
-
})
|
|
138
|
+
}, index))
|
|
139
|
+
})]
|
|
153
140
|
})
|
|
154
141
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
155
142
|
style: styles.volumeIcon,
|
|
156
143
|
onPress: () => setMuted(!muted),
|
|
157
144
|
children: muted ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
158
145
|
source: _speakerX.default,
|
|
159
|
-
style:
|
|
160
|
-
width: 24,
|
|
161
|
-
height: 24
|
|
162
|
-
}
|
|
146
|
+
style: styles.icon
|
|
163
147
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
164
148
|
source: _speaker.default,
|
|
165
|
-
style:
|
|
166
|
-
width: 24,
|
|
167
|
-
height: 24
|
|
168
|
-
}
|
|
149
|
+
style: styles.icon
|
|
169
150
|
})
|
|
170
151
|
})]
|
|
171
152
|
})
|
|
@@ -201,6 +182,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
201
182
|
flexDirection: 'row',
|
|
202
183
|
alignItems: 'center'
|
|
203
184
|
},
|
|
185
|
+
icon: {
|
|
186
|
+
width: 24,
|
|
187
|
+
height: 24
|
|
188
|
+
},
|
|
204
189
|
playPause: {
|
|
205
190
|
padding: 4,
|
|
206
191
|
marginRight: 12
|
|
@@ -226,6 +211,17 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
226
211
|
height: '100%',
|
|
227
212
|
backgroundColor: '#000'
|
|
228
213
|
},
|
|
214
|
+
bufferingSweep: {
|
|
215
|
+
position: 'absolute',
|
|
216
|
+
top: 0,
|
|
217
|
+
bottom: 0,
|
|
218
|
+
left: 0,
|
|
219
|
+
flexDirection: 'row'
|
|
220
|
+
},
|
|
221
|
+
bufferingSweepSlice: {
|
|
222
|
+
flex: 1,
|
|
223
|
+
backgroundColor: '#000'
|
|
224
|
+
},
|
|
229
225
|
volumeIcon: {
|
|
230
226
|
padding: 4,
|
|
231
227
|
marginRight: 12
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_AudioTagContext","_audioControlUtils","_play","_interopRequireDefault","_pause","_speaker","_speakerX","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TRACK_BAR_HEIGHT","TRACK_BAR_HEIGHT_PRESSED","TRACK_BAR_ANIM_MS","SCRUB_PAN_MIN_DISTANCE","AudioControls","ready","play","pause","seekToTime","playbackState","muted","setMuted","currentTime","duration","useAudioTagContext","progressTrackAnim","useExpandableTrackHeight","scrubTime","setScrubTime","useState","progressTrackRef","useAnimatedRef","progressMetricsWidth","useSharedValue","durationRef","useRef","current","onStart","useCallback","x","expand","d","measureInWindow","_left","_y","width","_h","value","timeFromLocationX","onUpdate","w","seekTo","onEnd","collapse","onCancel","onTapSeek","scrubGesture","useMemo","panGesture","Gesture","Pan","runOnJS","minDistance","onFinalize","_e","success","tapGesture","Tap","maxDistance","Race","onPlayPausePress","onProgressTrackLayout","jsx","View","style","styles","container","children","ActivityIndicator","color","size","displayTime","progress","jsxs","topRow","Pressable","playPause","onPress","Image","source","PauseIcon","height","PlayIcon","Text","timeText","formatTime","GestureDetector","gesture","ref","onLayout","progressTrack","collapsable","trackInner","animatedStyle","trackFill","volumeIcon","MuteIcon","VolumeIcon","StyleSheet","create","flexDirection","alignSelf","minWidth","paddingVertical","paddingHorizontal","backgroundColor","borderRadius","borderWidth","borderColor","Platform","select","ios","shadowColor","shadowOffset","shadowOpacity","shadowRadius","android","elevation","alignItems","padding","marginRight","fontSize","flex","justifyContent","overflow","loadingRow","loadingText","_default","exports"],"sourceRoot":"../../../../src","sources":["Audio/controls/AudioControls.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AudioTagContext","_utils","_audioControlUtils","_play","_interopRequireDefault","_pause","_speaker","_speakerX","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TRACK_BAR_HEIGHT","TRACK_BAR_HEIGHT_PRESSED","TRACK_BAR_ANIM_MS","BUFFERING_SWEEP_MS","BUFFERING_SWEEP_WIDTH_RATIO","BUFFERING_SWEEP_SLICE_OPACITIES","AudioControls","ready","play","pause","seekToTime","playbackState","muted","setMuted","currentTime","duration","useAudioTagContext","progressTrackAnim","useExpandableTrackHeight","scrubTime","setScrubTime","useState","trackWidth","setTrackWidth","isBuffering","bufferingSweepStyle","useBufferingSweep","scrub","useRef","startX","expand","collapse","current","panResponder","useMemo","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onPanResponderGrant","event","s","nativeEvent","locationX","timeFromLocationX","onPanResponderMove","_event","gestureState","dx","onPanResponderRelease","onPanResponderTerminate","onPlayPausePress","useCallback","isPlaybackActive","onProgressTrackLayout","width","layout","jsx","View","style","styles","container","children","ActivityIndicator","color","size","displayTime","progress","jsxs","topRow","Pressable","playPause","onPress","Image","source","PauseIcon","icon","PlayIcon","Text","timeText","formatTime","onLayout","progressTrack","panHandlers","Animated","trackInner","animatedStyle","trackFill","pointerEvents","bufferingSweep","map","opacity","index","bufferingSweepSlice","volumeIcon","MuteIcon","VolumeIcon","StyleSheet","flexDirection","alignSelf","minWidth","paddingVertical","paddingHorizontal","backgroundColor","borderRadius","borderWidth","borderColor","Platform","select","ios","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","android","elevation","alignItems","padding","marginRight","fontSize","flex","justifyContent","overflow","position","top","bottom","left","loadingRow","loadingText","_default","exports"],"sourceRoot":"../../../../src","sources":["Audio/controls/AudioControls.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.formatTime = formatTime;
|
|
7
7
|
exports.timeFromLocationX = timeFromLocationX;
|
|
8
|
+
exports.useBufferingSweep = useBufferingSweep;
|
|
8
9
|
exports.useExpandableTrackHeight = useExpandableTrackHeight;
|
|
9
10
|
var _react = require("react");
|
|
10
|
-
var
|
|
11
|
+
var _reactNative = require("react-native");
|
|
11
12
|
function formatTime(seconds) {
|
|
12
13
|
if (!Number.isFinite(seconds) || seconds < 0) {
|
|
13
14
|
return '0:00';
|
|
@@ -29,23 +30,52 @@ function timeFromLocationX(locationX, trackWidth, durationSeconds) {
|
|
|
29
30
|
return pct * durationSeconds;
|
|
30
31
|
}
|
|
31
32
|
function useExpandableTrackHeight(trackBarHeight, trackBarHeightPressed, trackBarAnimMs) {
|
|
32
|
-
const height = (0,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
33
|
+
const height = (0, _react.useRef)(new _reactNative.Animated.Value(trackBarHeight)).current;
|
|
34
|
+
return (0, _react.useMemo)(() => {
|
|
35
|
+
const animateTo = toValue => {
|
|
36
|
+
_reactNative.Animated.timing(height, {
|
|
37
|
+
toValue,
|
|
38
|
+
duration: trackBarAnimMs,
|
|
39
|
+
useNativeDriver: false
|
|
40
|
+
}).start();
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
animatedStyle: {
|
|
44
|
+
height,
|
|
45
|
+
borderRadius: _reactNative.Animated.divide(height, 2)
|
|
46
|
+
},
|
|
47
|
+
expand: () => animateTo(trackBarHeightPressed),
|
|
48
|
+
collapse: () => animateTo(trackBarHeight)
|
|
49
|
+
};
|
|
50
|
+
}, [height, trackBarHeight, trackBarHeightPressed, trackBarAnimMs]);
|
|
51
|
+
}
|
|
52
|
+
function useBufferingSweep(isBuffering, trackWidth, sweepWidthRatio, sweepDurationMs) {
|
|
53
|
+
const sweepProgress = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
54
|
+
(0, _react.useEffect)(() => {
|
|
55
|
+
if (!isBuffering) {
|
|
56
|
+
return;
|
|
48
57
|
}
|
|
49
|
-
|
|
58
|
+
const sweep = _reactNative.Animated.loop(_reactNative.Animated.timing(sweepProgress, {
|
|
59
|
+
toValue: 1,
|
|
60
|
+
duration: sweepDurationMs,
|
|
61
|
+
easing: _reactNative.Easing.inOut(t => _reactNative.Easing.quad(t)),
|
|
62
|
+
useNativeDriver: true
|
|
63
|
+
}));
|
|
64
|
+
sweep.start();
|
|
65
|
+
return () => {
|
|
66
|
+
sweep.stop();
|
|
67
|
+
sweepProgress.setValue(0);
|
|
68
|
+
};
|
|
69
|
+
}, [isBuffering, sweepDurationMs, sweepProgress]);
|
|
70
|
+
const sweepWidth = trackWidth * sweepWidthRatio;
|
|
71
|
+
return {
|
|
72
|
+
width: sweepWidth,
|
|
73
|
+
transform: [{
|
|
74
|
+
translateX: sweepProgress.interpolate({
|
|
75
|
+
inputRange: [0, 1],
|
|
76
|
+
outputRange: [-sweepWidth, trackWidth]
|
|
77
|
+
})
|
|
78
|
+
}]
|
|
79
|
+
};
|
|
50
80
|
}
|
|
51
81
|
//# sourceMappingURL=audioControlUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","formatTime","seconds","Number","isFinite","h","Math","floor","m","s","toString","padStart","timeFromLocationX","locationX","trackWidth","durationSeconds","pct","max","min","useExpandableTrackHeight","trackBarHeight","trackBarHeightPressed","trackBarAnimMs","height","useRef","Animated","Value","current","useMemo","animateTo","toValue","timing","duration","useNativeDriver","start","animatedStyle","borderRadius","divide","expand","collapse","useBufferingSweep","isBuffering","sweepWidthRatio","sweepDurationMs","sweepProgress","useEffect","sweep","loop","easing","Easing","inOut","t","quad","stop","setValue","sweepWidth","width","transform","translateX","interpolate","inputRange","outputRange"],"sourceRoot":"../../../../src","sources":["Audio/controls/audioControlUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
return _Audio.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "isPlaybackActive", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _utils.isPlaybackActive;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "useAudioTagContext", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
@@ -17,5 +23,6 @@ Object.defineProperty(exports, "useAudioTagContext", {
|
|
|
17
23
|
});
|
|
18
24
|
var _Audio = _interopRequireDefault(require("./Audio"));
|
|
19
25
|
var _AudioTagContext = require("./AudioTagContext");
|
|
26
|
+
var _utils = require("./utils");
|
|
20
27
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Audio","_interopRequireDefault","require","_AudioTagContext","e","__esModule","default"],"sourceRoot":"../../../src","sources":["Audio/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_Audio","_interopRequireDefault","require","_AudioTagContext","_utils","e","__esModule","default"],"sourceRoot":"../../../src","sources":["Audio/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAA2C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getSourceHeaders = getSourceHeaders;
|
|
7
|
+
exports.isPlaybackActive = isPlaybackActive;
|
|
7
8
|
exports.resolveSourcePath = resolveSourcePath;
|
|
8
9
|
exports.useStableAudioProps = useStableAudioProps;
|
|
9
10
|
exports.withPropsDefaults = withPropsDefaults;
|
|
@@ -11,6 +12,9 @@ var _react = require("react");
|
|
|
11
12
|
var _reactNative = require("react-native");
|
|
12
13
|
var _AudioContext = _interopRequireDefault(require("../core/AudioContext"));
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function isPlaybackActive(state) {
|
|
16
|
+
return state === 'playing' || state === 'buffering';
|
|
17
|
+
}
|
|
14
18
|
const noop = () => {};
|
|
15
19
|
const noopError = _error => {};
|
|
16
20
|
const noopNumber = _number => {};
|
|
@@ -41,7 +45,9 @@ function withPropsDefaults(props, resolvedContext) {
|
|
|
41
45
|
onEnded: props.onEnded ?? noop,
|
|
42
46
|
onPlay: props.onPlay ?? noop,
|
|
43
47
|
onPause: props.onPause ?? noop,
|
|
44
|
-
onVolumeChange: props.onVolumeChange ?? noopNumber
|
|
48
|
+
onVolumeChange: props.onVolumeChange ?? noopNumber,
|
|
49
|
+
onWaiting: props.onWaiting ?? noop,
|
|
50
|
+
onPlaying: props.onPlaying ?? noop
|
|
45
51
|
};
|
|
46
52
|
}
|
|
47
53
|
function useStableAudioProps(props) {
|
|
@@ -72,7 +78,9 @@ function useStableAudioProps(props) {
|
|
|
72
78
|
onEnded,
|
|
73
79
|
onPlay,
|
|
74
80
|
onPause,
|
|
75
|
-
onVolumeChange
|
|
81
|
+
onVolumeChange,
|
|
82
|
+
onWaiting,
|
|
83
|
+
onPlaying
|
|
76
84
|
} = withPropsDefaults(props, resolvedContext);
|
|
77
85
|
return (0, _react.useMemo)(() => ({
|
|
78
86
|
// Control Props
|
|
@@ -95,15 +103,18 @@ function useStableAudioProps(props) {
|
|
|
95
103
|
onEnded,
|
|
96
104
|
onPlay,
|
|
97
105
|
onPause,
|
|
98
|
-
onVolumeChange
|
|
99
|
-
|
|
106
|
+
onVolumeChange,
|
|
107
|
+
onWaiting,
|
|
108
|
+
onPlaying
|
|
109
|
+
}), [autoPlay, controls, loop, muted, preload, forceDownload, source, playbackRate, preservesPitch, volume, context, onLoadStart, onLoad, onError, onPositionChange, onEnded, onPlay, onPause, onVolumeChange, onWaiting, onPlaying]);
|
|
100
110
|
}
|
|
101
111
|
function resolveSourcePath(source) {
|
|
102
112
|
if (typeof source === 'string') {
|
|
103
113
|
return source;
|
|
104
114
|
}
|
|
105
115
|
if (typeof source === 'number') {
|
|
106
|
-
|
|
116
|
+
const uri = _reactNative.Image.resolveAssetSource(source)?.uri;
|
|
117
|
+
return uri ?? '';
|
|
107
118
|
}
|
|
108
119
|
return source.uri ?? '';
|
|
109
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_AudioContext","_interopRequireDefault","e","__esModule","default","noop","noopError","_error","noopNumber","_number","withPropsDefaults","props","resolvedContext","autoPlay","controls","loop","muted","preload","forceDownload","source","playbackRate","preservesPitch","volume","context","onLoadStart","onLoad","onError","onPositionChange","onEnded","onPlay","onPause","onVolumeChange","useStableAudioProps","useMemo","Platform","OS","undefined","AudioContext","resolveSourcePath","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_AudioContext","_interopRequireDefault","e","__esModule","default","isPlaybackActive","state","noop","noopError","_error","noopNumber","_number","withPropsDefaults","props","resolvedContext","autoPlay","controls","loop","muted","preload","forceDownload","source","playbackRate","preservesPitch","volume","context","onLoadStart","onLoad","onError","onPositionChange","onEnded","onPlay","onPause","onVolumeChange","onWaiting","onPlaying","useStableAudioProps","useMemo","Platform","OS","undefined","AudioContext","resolveSourcePath","uri","Image","resolveAssetSource","getSourceHeaders","headers"],"sourceRoot":"../../../src","sources":["Audio/utils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,7 @@ class AudioAPIModule {
|
|
|
13
13
|
#canUseWorklets_ = false;
|
|
14
14
|
#workletsVersion = 'unknown';
|
|
15
15
|
#workletsAvailable_ = false;
|
|
16
|
-
static MIN_WORKLETS_VERSION = '0.
|
|
16
|
+
static MIN_WORKLETS_VERSION = '0.7.0';
|
|
17
17
|
constructor() {
|
|
18
18
|
// Important! Verify and import worklets first
|
|
19
19
|
// otherwise the native module installation might crash
|
|
@@ -36,7 +36,10 @@ class AudioDecoder {
|
|
|
36
36
|
return new _AudioBuffer.default(buffer);
|
|
37
37
|
}
|
|
38
38
|
resolveStringSource(input) {
|
|
39
|
-
|
|
39
|
+
if (typeof input !== 'number') {
|
|
40
|
+
return input;
|
|
41
|
+
}
|
|
42
|
+
return _reactNative.Image.resolveAssetSource(input)?.uri ?? '';
|
|
40
43
|
}
|
|
41
44
|
assertSupportedStringSource(source) {
|
|
42
45
|
if (typeof source !== 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_specs","_errors","_paths","_utils","_AudioBuffer","_interopRequireDefault","e","__esModule","default","AudioDecoder","instance","constructor","decoder","globalThis","createAudioDecoder","decodeAudioDataImplementation","input","sampleRate","fetchOptions","rate","ArrayBuffer","decodeFromArrayBuffer","stringSource","resolveStringSource","assertSupportedStringSource","isRemoteSource","decodeFromRemoteUrl","decodeFromLocalFile","arrayBuffer","buffer","decodeWithMemoryBlock","Uint8Array","AudioBuffer","Image","resolveAssetSource","uri","source","TypeError","isBase64Source","AudioApiError","isDataBlobString","url","fetch","then","res","useAndroidBundledAssetReader","Platform","OS","startsWith","__DEV__","base64Payload","NativeAudioAPIModule","readAndroidReleaseAssetBytesAsBase64","base64ToArrayBuffer","filePath","resolveLocalFilePath","decodeWithFilePath","getInstance","decodeAudioDataInstance","audioBuffer","decodePCMInBase64Instance","base64String","inputSampleRate","inputChannelCount","interleaved","decodeWithPCMInBase64","decodeAudioData","decodePCMInBase64","isInterleaved"],"sourceRoot":"../../../src","sources":["core/AudioDecoder.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AAMA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,sBAAA,CAAAN,OAAA;AAAwC,SAAAM,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExC,MAAMG,YAAY,CAAC;EACjB,OAAeC,QAAQ,GAAwB,IAAI;EAG3CC,WAAWA,CAAA,EAAG;IACpB,IAAI,CAACC,OAAO,GAAGC,UAAU,CAACC,kBAAkB,CAAC,CAAC;EAChD;EAEA,MAAcC,6BAA6BA,CACzCC,KAAsB,EACtBC,UAAmB,EACnBC,YAA0B,EACe;IACzC,MAAMC,IAAI,GAAGF,UAAU,IAAI,CAAC;IAE5B,IAAID,KAAK,YAAYI,WAAW,EAAE;MAChC,OAAO,IAAI,CAACC,qBAAqB,CAACL,KAAK,EAAEG,IAAI,CAAC;IAChD;IAEA,MAAMG,YAAY,GAAG,IAAI,CAACC,mBAAmB,CAACP,KAAK,CAAC;IACpD,IAAI,CAACQ,2BAA2B,CAACF,YAAY,CAAC;IAE9C,IAAI,IAAAG,qBAAc,EAACH,YAAY,CAAC,EAAE;MAChC,OAAO,IAAI,CAACI,mBAAmB,CAACJ,YAAY,EAAEH,IAAI,EAAED,YAAY,CAAC;IACnE;IAEA,OAAO,IAAI,CAACS,mBAAmB,CAACL,YAAY,EAAEH,IAAI,CAAC;EACrD;EAEA,MAAcE,qBAAqBA,CACjCO,WAAwB,EACxBX,UAAkB,EACI;IACtB,MAAMY,MAAM,GAAG,MAAM,IAAI,CAACjB,OAAO,CAACkB,qBAAqB;IACrD;IACA,IAAIC,UAAU,CAACH,WAAW,CAAC,EAC3BX,UACF,CAAC;IACD,OAAO,IAAIe,oBAAW,CAACH,MAAM,CAAC;EAChC;EAEQN,mBAAmBA,CAACP,KAAsB,EAAmB;IACnE,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_specs","_errors","_paths","_utils","_AudioBuffer","_interopRequireDefault","e","__esModule","default","AudioDecoder","instance","constructor","decoder","globalThis","createAudioDecoder","decodeAudioDataImplementation","input","sampleRate","fetchOptions","rate","ArrayBuffer","decodeFromArrayBuffer","stringSource","resolveStringSource","assertSupportedStringSource","isRemoteSource","decodeFromRemoteUrl","decodeFromLocalFile","arrayBuffer","buffer","decodeWithMemoryBlock","Uint8Array","AudioBuffer","Image","resolveAssetSource","uri","source","TypeError","isBase64Source","AudioApiError","isDataBlobString","url","fetch","then","res","useAndroidBundledAssetReader","Platform","OS","startsWith","__DEV__","base64Payload","NativeAudioAPIModule","readAndroidReleaseAssetBytesAsBase64","base64ToArrayBuffer","filePath","resolveLocalFilePath","decodeWithFilePath","getInstance","decodeAudioDataInstance","audioBuffer","decodePCMInBase64Instance","base64String","inputSampleRate","inputChannelCount","interleaved","decodeWithPCMInBase64","decodeAudioData","decodePCMInBase64","isInterleaved"],"sourceRoot":"../../../src","sources":["core/AudioDecoder.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,13 +30,20 @@ const Audio = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((props, ref)
|
|
|
30
30
|
onEnded: onEndedCallback,
|
|
31
31
|
onPlay,
|
|
32
32
|
onPause,
|
|
33
|
-
onVolumeChange
|
|
33
|
+
onVolumeChange,
|
|
34
|
+
onWaiting,
|
|
35
|
+
onPlaying
|
|
34
36
|
} = useStableAudioProps(props);
|
|
35
37
|
const [volumeState, setVolumeState] = useState(null);
|
|
36
38
|
const [mutedState, setMutedState] = useState(null);
|
|
37
39
|
const [ready, setReady] = useState(false);
|
|
38
40
|
const [playbackState, setPlaybackState] = useState('idle');
|
|
41
|
+
const [isBuffering, setIsBuffering] = useState(false);
|
|
39
42
|
const [currentTime, setCurrentTime] = useState(0);
|
|
43
|
+
|
|
44
|
+
// Derived rather than folded into playbackState directly, so the
|
|
45
|
+
// buffering-subscription effect below isn't torn down on every stall.
|
|
46
|
+
const publicPlaybackState = useMemo(() => playbackState === 'playing' && isBuffering ? 'buffering' : playbackState, [playbackState, isBuffering]);
|
|
40
47
|
const path = useMemo(() => resolveSourcePath(source), [source]);
|
|
41
48
|
const lastEffectiveVolumeRef = useRef(muted ? 0 : volume);
|
|
42
49
|
useEffect(() => {
|
|
@@ -158,6 +165,26 @@ const Audio = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((props, ref)
|
|
|
158
165
|
fileSource?.stopPositionTracking();
|
|
159
166
|
};
|
|
160
167
|
}, [onPositionChange, playbackState, fileSourceRef]);
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
if (playbackState !== 'playing') {
|
|
170
|
+
// Not an active stall (paused/idle/ended) — clear any stale flag from
|
|
171
|
+
// a stall that was in progress when playback stopped.
|
|
172
|
+
setIsBuffering(false);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const fileSource = fileSourceRef.current;
|
|
176
|
+
fileSource?.startBufferingTracking(buffering => {
|
|
177
|
+
setIsBuffering(buffering);
|
|
178
|
+
if (buffering) {
|
|
179
|
+
onWaiting();
|
|
180
|
+
} else {
|
|
181
|
+
onPlaying();
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
return () => {
|
|
185
|
+
fileSource?.stopBufferingTracking();
|
|
186
|
+
};
|
|
187
|
+
}, [onWaiting, onPlaying, playbackState, fileSourceRef]);
|
|
161
188
|
useImperativeHandle(ref, () => ({
|
|
162
189
|
play,
|
|
163
190
|
pause,
|
|
@@ -176,7 +203,7 @@ const Audio = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((props, ref)
|
|
|
176
203
|
ready,
|
|
177
204
|
setMuted: setMutedState,
|
|
178
205
|
muted: effectiveMutedState,
|
|
179
|
-
playbackState,
|
|
206
|
+
playbackState: publicPlaybackState,
|
|
180
207
|
currentTime,
|
|
181
208
|
duration,
|
|
182
209
|
autoPlay,
|
|
@@ -187,7 +214,7 @@ const Audio = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((props, ref)
|
|
|
187
214
|
preservesPitch,
|
|
188
215
|
sourcePath: path,
|
|
189
216
|
source
|
|
190
|
-
}), [play, pause, seekToTime, setVolumeState, effectiveVolumeState, ready, setMutedState, effectiveMutedState,
|
|
217
|
+
}), [play, pause, seekToTime, setVolumeState, effectiveVolumeState, ready, setMutedState, effectiveMutedState, publicPlaybackState, currentTime, duration, autoPlay, controls, loop, preload, playbackRate, preservesPitch, path, source]);
|
|
191
218
|
return /*#__PURE__*/_jsx(AudioComponentContext.Provider, {
|
|
192
219
|
value: ctxValue,
|
|
193
220
|
children: /*#__PURE__*/_jsxs(View, {
|