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.
Files changed (96) hide show
  1. package/android/src/main/java/com/swmansion/audioapi/system/AudioEvent.kt +1 -0
  2. package/common/cpp/audioapi/HostObjects/sources/AudioFileSourceNodeHostObject.cpp +8 -2
  3. package/common/cpp/audioapi/HostObjects/sources/AudioFileSourceNodeHostObject.h +1 -0
  4. package/common/cpp/audioapi/HostObjects/utils/JsEnumParser.cpp +2 -0
  5. package/common/cpp/audioapi/core/sources/AudioFileSourceNode.cpp +15 -1
  6. package/common/cpp/audioapi/core/sources/AudioFileSourceNode.h +19 -0
  7. package/common/cpp/audioapi/core/sources/RecorderAdapterNode.cpp +12 -1
  8. package/common/cpp/audioapi/core/sources/RecorderAdapterNode.h +6 -0
  9. package/common/cpp/audioapi/core/utils/param/ParamQueueBase.hpp +1 -1
  10. package/common/cpp/audioapi/core/utils/param/ParamRenderQueue.cpp +35 -12
  11. package/common/cpp/audioapi/core/utils/param/ParamRenderQueue.h +9 -0
  12. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +3 -3
  13. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +2 -2
  14. package/common/cpp/audioapi/events/AudioEvent.h +1 -0
  15. package/common/cpp/audioapi/events/AudioEventPayload.h +11 -0
  16. package/common/cpp/audioapi/events/AudioEventPayloadMapping.h +1 -0
  17. package/common/cpp/audioapi/utils/events/BufferingStateDispatcher.cpp +49 -0
  18. package/common/cpp/audioapi/utils/events/BufferingStateDispatcher.h +42 -0
  19. package/ios/audioapi/ios/core/IOSAudioRecorder.h +12 -1
  20. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +195 -72
  21. package/ios/audioapi/ios/core/NativeAudioRecorder.h +3 -1
  22. package/ios/audioapi/ios/core/NativeAudioRecorder.m +41 -14
  23. package/ios/audioapi/ios/core/utils/FileOptions.mm +18 -5
  24. package/ios/audioapi/ios/core/utils/IOSFileWriter.h +8 -0
  25. package/ios/audioapi/ios/core/utils/IOSFileWriter.mm +55 -8
  26. package/ios/audioapi/ios/core/utils/IOSRotatingFileWriter.h +3 -0
  27. package/ios/audioapi/ios/core/utils/IOSRotatingFileWriter.mm +16 -0
  28. package/ios/audioapi/ios/system/AudioEngine.h +2 -1
  29. package/ios/audioapi/ios/system/AudioEngine.mm +49 -23
  30. package/ios/audioapi/ios/system/SystemNotificationManager.mm +10 -0
  31. package/lib/commonjs/Audio/Audio.js +30 -3
  32. package/lib/commonjs/Audio/Audio.js.map +1 -1
  33. package/lib/commonjs/Audio/Audio.web.js +21 -3
  34. package/lib/commonjs/Audio/Audio.web.js.map +1 -1
  35. package/lib/commonjs/Audio/AudioFileSourceNode.js +20 -0
  36. package/lib/commonjs/Audio/AudioFileSourceNode.js.map +1 -1
  37. package/lib/commonjs/Audio/controls/AudioControls.js +90 -94
  38. package/lib/commonjs/Audio/controls/AudioControls.js.map +1 -1
  39. package/lib/commonjs/Audio/controls/audioControlUtils.js +48 -18
  40. package/lib/commonjs/Audio/controls/audioControlUtils.js.map +1 -1
  41. package/lib/commonjs/Audio/index.js +7 -0
  42. package/lib/commonjs/Audio/index.js.map +1 -1
  43. package/lib/commonjs/Audio/utils.js +16 -5
  44. package/lib/commonjs/Audio/utils.js.map +1 -1
  45. package/lib/commonjs/AudioAPIModule/AudioAPIModule.js +1 -1
  46. package/lib/commonjs/core/AudioDecoder.js +4 -1
  47. package/lib/commonjs/core/AudioDecoder.js.map +1 -1
  48. package/lib/module/Audio/Audio.js +30 -3
  49. package/lib/module/Audio/Audio.js.map +1 -1
  50. package/lib/module/Audio/Audio.web.js +21 -3
  51. package/lib/module/Audio/Audio.web.js.map +1 -1
  52. package/lib/module/Audio/AudioFileSourceNode.js +20 -0
  53. package/lib/module/Audio/AudioFileSourceNode.js.map +1 -1
  54. package/lib/module/Audio/controls/AudioControls.js +92 -96
  55. package/lib/module/Audio/controls/AudioControls.js.map +1 -1
  56. package/lib/module/Audio/controls/audioControlUtils.js +48 -19
  57. package/lib/module/Audio/controls/audioControlUtils.js.map +1 -1
  58. package/lib/module/Audio/index.js +1 -0
  59. package/lib/module/Audio/index.js.map +1 -1
  60. package/lib/module/Audio/utils.js +15 -5
  61. package/lib/module/Audio/utils.js.map +1 -1
  62. package/lib/module/AudioAPIModule/AudioAPIModule.js +1 -1
  63. package/lib/module/core/AudioDecoder.js +4 -1
  64. package/lib/module/core/AudioDecoder.js.map +1 -1
  65. package/lib/typescript/Audio/Audio.d.ts.map +1 -1
  66. package/lib/typescript/Audio/Audio.web.d.ts.map +1 -1
  67. package/lib/typescript/Audio/AudioFileSourceNode.d.ts +2 -0
  68. package/lib/typescript/Audio/AudioFileSourceNode.d.ts.map +1 -1
  69. package/lib/typescript/Audio/controls/AudioControls.d.ts.map +1 -1
  70. package/lib/typescript/Audio/controls/audioControlUtils.d.ts +11 -4
  71. package/lib/typescript/Audio/controls/audioControlUtils.d.ts.map +1 -1
  72. package/lib/typescript/Audio/index.d.ts +1 -0
  73. package/lib/typescript/Audio/index.d.ts.map +1 -1
  74. package/lib/typescript/Audio/types.d.ts +15 -1
  75. package/lib/typescript/Audio/types.d.ts.map +1 -1
  76. package/lib/typescript/Audio/utils.d.ts +2 -1
  77. package/lib/typescript/Audio/utils.d.ts.map +1 -1
  78. package/lib/typescript/core/AudioDecoder.d.ts.map +1 -1
  79. package/lib/typescript/events/types.d.ts +5 -0
  80. package/lib/typescript/events/types.d.ts.map +1 -1
  81. package/lib/typescript/jsi-interfaces.d.ts +1 -0
  82. package/lib/typescript/jsi-interfaces.d.ts.map +1 -1
  83. package/package.json +8 -8
  84. package/scripts/validate-worklets-version.js +1 -1
  85. package/src/Audio/Audio.tsx +38 -2
  86. package/src/Audio/Audio.web.tsx +26 -2
  87. package/src/Audio/AudioFileSourceNode.ts +28 -0
  88. package/src/Audio/controls/AudioControls.tsx +117 -116
  89. package/src/Audio/controls/audioControlUtils.ts +63 -31
  90. package/src/Audio/index.ts +1 -0
  91. package/src/Audio/types.ts +15 -1
  92. package/src/Audio/utils.ts +20 -2
  93. package/src/AudioAPIModule/AudioAPIModule.ts +1 -1
  94. package/src/core/AudioDecoder.ts +5 -3
  95. package/src/events/types.ts +6 -0
  96. 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 SCRUB_PAN_MIN_DISTANCE = 8;
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 progressTrackRef = (0, _reactNativeReanimated.useAnimatedRef)();
39
- const progressMetricsWidth = (0, _reactNativeReanimated.useSharedValue)(0);
40
- const durationRef = (0, _react.useRef)(duration);
41
- durationRef.current = duration;
42
- const onStart = (0, _react.useCallback)(x => {
43
- progressTrackAnim.expand();
44
- const d = durationRef.current;
45
- progressTrackRef.current?.measureInWindow((_left, _y, width, _h) => {
46
- progressMetricsWidth.value = width;
47
- setScrubTime((0, _audioControlUtils.timeFromLocationX)(x, width, d));
48
- });
49
- }, [progressTrackAnim, progressMetricsWidth, setScrubTime, progressTrackRef]);
50
- const onUpdate = (0, _react.useCallback)(x => {
51
- const d = durationRef.current;
52
- const w = progressMetricsWidth.value;
53
- setScrubTime((0, _audioControlUtils.timeFromLocationX)(x, w, d));
54
- }, [progressMetricsWidth]);
55
- const seekTo = (0, _react.useCallback)(x => {
56
- const d = durationRef.current;
57
- const w = progressMetricsWidth.value;
58
- const t = (0, _audioControlUtils.timeFromLocationX)(x, w, d);
59
- seekToTime(t);
60
- }, [progressMetricsWidth, seekToTime]);
61
- const onEnd = (0, _react.useCallback)(x => {
62
- seekTo(x);
63
- progressTrackAnim.collapse();
64
- setScrubTime(null);
65
- }, [progressTrackAnim, seekTo]);
66
- const onCancel = (0, _react.useCallback)(() => {
67
- progressTrackAnim.collapse();
68
- setScrubTime(null);
69
- }, [progressTrackAnim]);
70
- const onTapSeek = (0, _react.useCallback)(x => {
71
- onEnd(x);
72
- }, [onEnd]);
73
- const scrubGesture = (0, _react.useMemo)(() => {
74
- const panGesture = _reactNativeGestureHandler.Gesture.Pan().runOnJS(true).minDistance(SCRUB_PAN_MIN_DISTANCE).onStart(e => {
75
- onStart(e.x);
76
- }).onUpdate(e => {
77
- onUpdate(e.x);
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 (playbackState === 'playing') {
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
- progressTrackRef.current?.measureInWindow((_left, _y, width, _h) => {
101
- progressMetricsWidth.value = width;
102
- });
103
- }, [progressMetricsWidth, progressTrackRef]);
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 === 'playing' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
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)(_reactNativeGestureHandler.GestureDetector, {
139
- gesture: scrubGesture,
140
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
141
- ref: progressTrackRef,
142
- onLayout: onProgressTrackLayout,
143
- style: styles.progressTrack,
144
- collapsable: false,
145
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
146
- style: [styles.trackInner, progressTrackAnim.animatedStyle],
147
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
148
- style: [styles.trackFill, {
149
- width: `${progress * 100}%`
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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAJ,uBAAA,CAAAC,OAAA;AAIA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAMA,IAAAM,KAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,QAAA,GAAAF,sBAAA,CAAAP,OAAA;AACA,IAAAU,SAAA,GAAAH,sBAAA,CAAAP,OAAA;AAA6C,IAAAW,WAAA,GAAAX,OAAA;AAAA,SAAAO,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAjB,uBAAA,YAAAA,CAAAa,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAE7C,MAAMgB,gBAAgB,GAAG,EAAE;AAC3B,MAAMC,wBAAwB,GAAG,EAAE;AACnC,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,sBAAsB,GAAG,CAAC;AAEhC,MAAMC,aAAuB,GAAGA,CAAA,KAAM;EACpC,MAAM;IACJC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,UAAU;IACVC,aAAa;IACbC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAG,IAAAC,mCAAkB,EAAC,CAAC;EAExB,MAAMC,iBAAiB,GAAG,IAAAC,2CAAwB,EAChDhB,gBAAgB,EAChBC,wBAAwB,EACxBC,iBACF,CAAC;EAED,MAAM,CAACe,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAgB,IAAI,CAAC;EAC/D,MAAMC,gBAAgB,GAAG,IAAAC,qCAAc,EAAO,CAAC;EAC/C,MAAMC,oBAAoB,GAAG,IAAAC,qCAAc,EAAC,CAAC,CAAC;EAC9C,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACZ,QAAQ,CAAC;EACpCW,WAAW,CAACE,OAAO,GAAGb,QAAQ;EAE9B,MAAMc,OAAO,GAAG,IAAAC,kBAAW,EACxBC,CAAS,IAAK;IACbd,iBAAiB,CAACe,MAAM,CAAC,CAAC;IAC1B,MAAMC,CAAC,GAAGP,WAAW,CAACE,OAAO;IAC7BN,gBAAgB,CAACM,OAAO,EAAEM,eAAe,CAAC,CAACC,KAAK,EAAEC,EAAE,EAAEC,KAAK,EAAEC,EAAE,KAAK;MAClEd,oBAAoB,CAACe,KAAK,GAAGF,KAAK;MAClCjB,YAAY,CAAC,IAAAoB,oCAAiB,EAACT,CAAC,EAAEM,KAAK,EAAEJ,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;EACJ,CAAC,EACD,CAAChB,iBAAiB,EAAEO,oBAAoB,EAAEJ,YAAY,EAAEE,gBAAgB,CAC1E,CAAC;EAED,MAAMmB,QAAQ,GAAG,IAAAX,kBAAW,EACzBC,CAAS,IAAK;IACb,MAAME,CAAC,GAAGP,WAAW,CAACE,OAAO;IAC7B,MAAMc,CAAC,GAAGlB,oBAAoB,CAACe,KAAK;IACpCnB,YAAY,CAAC,IAAAoB,oCAAiB,EAACT,CAAC,EAAEW,CAAC,EAAET,CAAC,CAAC,CAAC;EAC1C,CAAC,EACD,CAACT,oBAAoB,CACvB,CAAC;EAED,MAAMmB,MAAM,GAAG,IAAAb,kBAAW,EACvBC,CAAS,IAAK;IACb,MAAME,CAAC,GAAGP,WAAW,CAACE,OAAO;IAC7B,MAAMc,CAAC,GAAGlB,oBAAoB,CAACe,KAAK;IACpC,MAAMrD,CAAC,GAAG,IAAAsD,oCAAiB,EAACT,CAAC,EAAEW,CAAC,EAAET,CAAC,CAAC;IACpCvB,UAAU,CAACxB,CAAC,CAAC;EACf,CAAC,EACD,CAACsC,oBAAoB,EAAEd,UAAU,CACnC,CAAC;EAED,MAAMkC,KAAK,GAAG,IAAAd,kBAAW,EACtBC,CAAS,IAAK;IACbY,MAAM,CAACZ,CAAC,CAAC;IACTd,iBAAiB,CAAC4B,QAAQ,CAAC,CAAC;IAC5BzB,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EACD,CAACH,iBAAiB,EAAE0B,MAAM,CAC5B,CAAC;EAED,MAAMG,QAAQ,GAAG,IAAAhB,kBAAW,EAAC,MAAM;IACjCb,iBAAiB,CAAC4B,QAAQ,CAAC,CAAC;IAC5BzB,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EAAE,CAACH,iBAAiB,CAAC,CAAC;EAEvB,MAAM8B,SAAS,GAAG,IAAAjB,kBAAW,EAC1BC,CAAS,IAAK;IACba,KAAK,CAACb,CAAC,CAAC;EACV,CAAC,EACD,CAACa,KAAK,CACR,CAAC;EAED,MAAMI,YAAY,GAAG,IAAAC,cAAO,EAAC,MAAM;IACjC,MAAMC,UAAU,GAAGC,kCAAO,CAACC,GAAG,CAAC,CAAC,CAC7BC,OAAO,CAAC,IAAI,CAAC,CACbC,WAAW,CAACjD,sBAAsB,CAAC,CACnCwB,OAAO,CAAE9C,CAAC,IAAK;MACd8C,OAAO,CAAC9C,CAAC,CAACgD,CAAC,CAAC;IACd,CAAC,CAAC,CACDU,QAAQ,CAAE1D,CAAC,IAAK;MACf0D,QAAQ,CAAC1D,CAAC,CAACgD,CAAC,CAAC;IACf,CAAC,CAAC,CACDa,KAAK,CAAE7D,CAAC,IAAK;MACZ6D,KAAK,CAAC7D,CAAC,CAACgD,CAAC,CAAC;IACZ,CAAC,CAAC,CACDwB,UAAU,CAAC,CAACC,EAAE,EAAEC,OAAO,KAAK;MAC3B,IAAI,CAACA,OAAO,EAAE;QACZX,QAAQ,CAAC,CAAC;MACZ;IACF,CAAC,CAAC;IAEJ,MAAMY,UAAU,GAAGP,kCAAO,CAACQ,GAAG,CAAC,CAAC,CAC7BN,OAAO,CAAC,IAAI,CAAC,CACbO,WAAW,CAAC,EAAE,CAAC,CACfhB,KAAK,CAAC,CAAC7D,CAAC,EAAE0E,OAAO,KAAK;MACrB,IAAIA,OAAO,EAAE;QACXV,SAAS,CAAChE,CAAC,CAACgD,CAAC,CAAC;MAChB;IACF,CAAC,CAAC;IAEJ,OAAOoB,kCAAO,CAACU,IAAI,CAACX,UAAU,EAAEQ,UAAU,CAAC;EAC7C,CAAC,EAAE,CAAC7B,OAAO,EAAEY,QAAQ,EAAEG,KAAK,EAAEE,QAAQ,EAAEC,SAAS,CAAC,CAAC;EAEnD,MAAMe,gBAAgB,GAAG,IAAAhC,kBAAW,EAAC,MAAM;IACzC,IAAInB,aAAa,KAAK,SAAS,EAAE;MAC/BF,KAAK,CAAC,CAAC;IACT,CAAC,MAAM;MACLD,IAAI,CAAC,CAAC;IACR;EACF,CAAC,EAAE,CAACG,aAAa,EAAEF,KAAK,EAAED,IAAI,CAAC,CAAC;EAEhC,MAAMuD,qBAAqB,GAAG,IAAAjC,kBAAW,EAAC,MAAM;IAC9CR,gBAAgB,CAACM,OAAO,EAAEM,eAAe,CAAC,CAACC,KAAK,EAAEC,EAAE,EAAEC,KAAK,EAAEC,EAAE,KAAK;MAClEd,oBAAoB,CAACe,KAAK,GAAGF,KAAK;IACpC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACb,oBAAoB,EAAEF,gBAAgB,CAAC,CAAC;EAE5C,IAAI,CAACf,KAAK,EAAE;IACV,oBACE,IAAAzB,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA6F,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAC,QAAA,eAC5B,IAAAvF,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAAkG,iBAAiB;QAACC,KAAK,EAAC,MAAM;QAACC,IAAI,EAAC;MAAO,CAAE;IAAC,CAC3C,CAAC;EAEX;EAEA,MAAMC,WAAW,GAAGtD,SAAS,IAAIL,WAAW;EAC5C,MAAM4D,QAAQ,GAAG3D,QAAQ,GAAG,CAAC,GAAG0D,WAAW,GAAG1D,QAAQ,GAAG,CAAC;EAE1D,oBACE,IAAAjC,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA6F,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5B,IAAAvF,WAAA,CAAA6F,IAAA,EAACvG,YAAA,CAAA6F,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACS,MAAO;MAAAP,QAAA,gBACzB,IAAAvF,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAAyG,SAAS;QAACX,KAAK,EAAEC,MAAM,CAACW,SAAU;QAACC,OAAO,EAAEjB,gBAAiB;QAAAO,QAAA,EAC3D1D,aAAa,KAAK,SAAS,gBAC1B,IAAA7B,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA4G,KAAK;UAACC,MAAM,EAAEC,cAAU;UAAChB,KAAK,EAAE;YAAE7B,KAAK,EAAE,EAAE;YAAE8C,MAAM,EAAE;UAAG;QAAE,CAAE,CAAC,gBAE9D,IAAArG,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA4G,KAAK;UAACC,MAAM,EAAEG,aAAS;UAAClB,KAAK,EAAE;YAAE7B,KAAK,EAAE,EAAE;YAAE8C,MAAM,EAAE;UAAG;QAAE,CAAE;MAC7D,CACQ,CAAC,eAEZ,IAAArG,WAAA,CAAA6F,IAAA,EAACvG,YAAA,CAAAiH,IAAI;QAACnB,KAAK,EAAEC,MAAM,CAACmB,QAAS;QAAAjB,QAAA,GAC1B,IAAAkB,6BAAU,EAACd,WAAW,CAAC,EAAC,KAAG,EAAC,IAAAc,6BAAU,EAACxE,QAAQ,CAAC;MAAA,CAC7C,CAAC,eAEP,IAAAjC,WAAA,CAAAkF,GAAA,EAAC3F,0BAAA,CAAAmH,eAAe;QAACC,OAAO,EAAEzC,YAAa;QAAAqB,QAAA,eAErC,IAAAvF,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA6F,IAAI;UACHyB,GAAG,EAAEpE,gBAAiB;UACtBqE,QAAQ,EAAE5B,qBAAsB;UAChCG,KAAK,EAAEC,MAAM,CAACyB,aAAc;UAC5BC,WAAW,EAAE,KAAM;UAAAxB,QAAA,eACnB,IAAAvF,WAAA,CAAAkF,GAAA,EAAC1F,sBAAA,CAAAW,OAAQ,CAACgF,IAAI;YACZC,KAAK,EAAE,CAACC,MAAM,CAAC2B,UAAU,EAAE7E,iBAAiB,CAAC8E,aAAa,CAAE;YAAA1B,QAAA,eAE5D,IAAAvF,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA6F,IAAI;cACHC,KAAK,EAAE,CAACC,MAAM,CAAC6B,SAAS,EAAE;gBAAE3D,KAAK,EAAE,GAAGqC,QAAQ,GAAG,GAAG;cAAI,CAAC;YAAE,CAC5D;UAAC,CACW;QAAC,CACZ;MAAC,CACQ,CAAC,eAElB,IAAA5F,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAAyG,SAAS;QAACX,KAAK,EAAEC,MAAM,CAAC8B,UAAW;QAAClB,OAAO,EAAEA,CAAA,KAAMlE,QAAQ,CAAC,CAACD,KAAK,CAAE;QAAAyD,QAAA,EAClEzD,KAAK,gBACJ,IAAA9B,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA4G,KAAK;UAACC,MAAM,EAAEiB,iBAAS;UAAChC,KAAK,EAAE;YAAE7B,KAAK,EAAE,EAAE;YAAE8C,MAAM,EAAE;UAAG;QAAE,CAAE,CAAC,gBAE7D,IAAArG,WAAA,CAAAkF,GAAA,EAAC5F,YAAA,CAAA4G,KAAK;UAACC,MAAM,EAAEkB,gBAAW;UAACjC,KAAK,EAAE;YAAE7B,KAAK,EAAE,EAAE;YAAE8C,MAAM,EAAE;UAAG;QAAE,CAAE;MAC/D,CACQ,CAAC;IAAA,CACR;EAAC,CACH,CAAC;AAEX,CAAC;AAED,MAAMhB,MAAM,GAAGiC,uBAAU,CAACC,MAAM,CAAC;EAC/BjC,SAAS,EAAE;IACTkC,aAAa,EAAE,QAAQ;IACvBC,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,CAAC;IACfC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,MAAM;IACnB,GAAGC,qBAAQ,CAACC,MAAM,CAAC;MACjBC,GAAG,EAAE;QACHC,WAAW,EAAE,MAAM;QACnBC,YAAY,EAAE;UAAE9E,KAAK,EAAE,CAAC;UAAE8C,MAAM,EAAE;QAAE,CAAC;QACrCiC,aAAa,EAAE,IAAI;QACnBC,YAAY,EAAE;MAChB,CAAC;MACDC,OAAO,EAAE;QACPC,SAAS,EAAE;MACb;IACF,CAAC;EACH,CAAC;EACD3C,MAAM,EAAE;IACN0B,aAAa,EAAE,KAAK;IACpBkB,UAAU,EAAE;EACd,CAAC;EACD1C,SAAS,EAAE;IACT2C,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE;EACf,CAAC;EACDpC,QAAQ,EAAE;IACRf,KAAK,EAAE,MAAM;IACboD,QAAQ,EAAE,EAAE;IACZD,WAAW,EAAE,EAAE;IACflB,QAAQ,EAAE;EACZ,CAAC;EACDZ,aAAa,EAAE;IACbgC,IAAI,EAAE,CAAC;IACPpB,QAAQ,EAAE,EAAE;IACZqB,cAAc,EAAE,QAAQ;IACxBH,WAAW,EAAE;EACf,CAAC;EACD5B,UAAU,EAAE;IACVS,SAAS,EAAE,SAAS;IACpBI,eAAe,EAAE,MAAM;IACvBmB,QAAQ,EAAE;EACZ,CAAC;EACD9B,SAAS,EAAE;IACTb,MAAM,EAAE,MAAM;IACdwB,eAAe,EAAE;EACnB,CAAC;EACDV,UAAU,EAAE;IACVwB,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE;EACf,CAAC;EACDK,UAAU,EAAE;IACVzB,aAAa,EAAE,KAAK;IACpBkB,UAAU,EAAE;EACd,CAAC;EACDQ,WAAW,EAAE;IACXzD,KAAK,EAAE,MAAM;IACboD,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAjJ,OAAA,GAEYqB,aAAa","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 _reactNativeReanimated = require("react-native-reanimated");
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, _reactNativeReanimated.useSharedValue)(trackBarHeight);
33
- const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
34
- height: height.value,
35
- borderRadius: height.value / 2
36
- }));
37
- return (0, _react.useMemo)(() => ({
38
- animatedStyle,
39
- expand: () => {
40
- height.value = (0, _reactNativeReanimated.withTiming)(trackBarHeightPressed, {
41
- duration: trackBarAnimMs
42
- });
43
- },
44
- collapse: () => {
45
- height.value = (0, _reactNativeReanimated.withTiming)(trackBarHeight, {
46
- duration: trackBarAnimMs
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
- }), [animatedStyle, height, trackBarHeight, trackBarHeightPressed, trackBarAnimMs]);
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","_reactNativeReanimated","formatTime","seconds","Number","isFinite","h","Math","floor","m","s","toString","padStart","timeFromLocationX","locationX","trackWidth","durationSeconds","pct","max","min","useExpandableTrackHeight","trackBarHeight","trackBarHeightPressed","trackBarAnimMs","height","useSharedValue","animatedStyle","useAnimatedStyle","value","borderRadius","useMemo","expand","withTiming","duration","collapse"],"sourceRoot":"../../../../src","sources":["Audio/controls/audioControlUtils.ts"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAMO,SAASE,UAAUA,CAACC,OAAe,EAAU;EAClD,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,OAAO,CAAC,IAAIA,OAAO,GAAG,CAAC,EAAE;IAC5C,OAAO,MAAM;EACf;EACA,MAAMG,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,IAAI,CAAC;EACpC,MAAMM,CAAC,GAAGF,IAAI,CAACC,KAAK,CAAEL,OAAO,GAAG,IAAI,GAAI,EAAE,CAAC;EAC3C,MAAMO,CAAC,GAAGH,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,EAAE,CAAC;EAClC,IAAIG,CAAC,GAAG,CAAC,EAAE;IACT,OAAO,GAAGA,CAAC,IAAIG,CAAC,CAACE,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAIF,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;EACjF,CAAC,MAAM;IACL,OAAO,GAAGH,CAAC,IAAIC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;EAChD;AACF;AAEO,SAASC,iBAAiBA,CAC/BC,SAAiB,EACjBC,UAAkB,EAClBC,eAAuB,EACf;EACR,IAAID,UAAU,IAAI,CAAC,IAAIC,eAAe,IAAI,CAAC,EAAE;IAC3C,OAAO,CAAC;EACV;EACA,MAAMC,GAAG,GAAGV,IAAI,CAACW,GAAG,CAAC,CAAC,EAAEX,IAAI,CAACY,GAAG,CAAC,CAAC,EAAEL,SAAS,GAAGC,UAAU,CAAC,CAAC;EAC5D,OAAOE,GAAG,GAAGD,eAAe;AAC9B;AAEO,SAASI,wBAAwBA,CACtCC,cAAsB,EACtBC,qBAA6B,EAC7BC,cAAsB,EACtB;EACA,MAAMC,MAAM,GAAG,IAAAC,qCAAc,EAACJ,cAAc,CAAC;EAC7C,MAAMK,aAAa,GAAG,IAAAC,uCAAgB,EAAC,OAAO;IAC5CH,MAAM,EAAEA,MAAM,CAACI,KAAK;IACpBC,YAAY,EAAEL,MAAM,CAACI,KAAK,GAAG;EAC/B,CAAC,CAAC,CAAC;EAEH,OAAO,IAAAE,cAAO,EACZ,OAAO;IACLJ,aAAa;IACbK,MAAM,EAAEA,CAAA,KAAM;MACZP,MAAM,CAACI,KAAK,GAAG,IAAAI,iCAAU,EAACV,qBAAqB,EAAE;QAC/CW,QAAQ,EAAEV;MACZ,CAAC,CAAC;IACJ,CAAC;IACDW,QAAQ,EAAEA,CAAA,KAAM;MACdV,MAAM,CAACI,KAAK,GAAG,IAAAI,iCAAU,EAACX,cAAc,EAAE;QACxCY,QAAQ,EAAEV;MACZ,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,EACF,CACEG,aAAa,EACbF,MAAM,EACNH,cAAc,EACdC,qBAAqB,EACrBC,cAAc,CAElB,CAAC;AACH","ignoreList":[]}
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":";;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAuD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
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
- }), [autoPlay, controls, loop, muted, preload, forceDownload, source, playbackRate, preservesPitch, volume, context, onLoadStart, onLoad, onError, onPositionChange, onEnded, onPlay, onPause, onVolumeChange]);
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
- return _reactNative.Image.resolveAssetSource(source).uri;
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","Image","resolveAssetSource","uri","getSourceHeaders","headers"],"sourceRoot":"../../../src","sources":["Audio/utils.ts"],"mappings":"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","ignoreList":[]}
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.6.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
- return typeof input === 'number' ? _reactNative.Image.resolveAssetSource(input).uri : input;
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":"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","ignoreList":[]}
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, playbackState, currentTime, duration, autoPlay, controls, loop, preload, playbackRate, preservesPitch, path, source]);
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, {