This commit is contained in:
Saif Shaikh 2026-03-10 13:30:48 +09:00 committed by GitHub
commit a960477d88
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -305,35 +305,59 @@ export const PlayerControls: React.FC<PlayerControlsProps> = ({
> >
{/* Progress slider with native iOS slider */} {/* Progress slider with native iOS slider */}
<View style={styles.sliderContainer}> <View style={styles.sliderContainer}>
<Slider <View
style={{ style={{
width: '100%',
height: 40, height: 40,
marginHorizontal: 0, justifyContent: 'center',
}} }}>
minimumValue={0} {/* Non-interactive slider to only show the buffer track */}
maximumValue={duration || 1} <Slider
style={{
position: 'absolute',
width: '100%',
height: 40,
}}
step={1}
minimumValue={0}
maximumValue={duration || 1}
value={Math.min(buffered, duration || 1)}
minimumTrackTintColor={currentTheme.colors.highEmphasis}
maximumTrackTintColor={currentTheme.colors.mediumEmphasis}
thumbTintColor="transparent"
pointerEvents='none'
/>
{/* Video seek & progress slider */}
<Slider
style={{
width: '100%',
height: 40,
marginHorizontal: 0,
}}
step={1}
minimumValue={0}
maximumValue={duration || 1}
value={previewTime} value={previewTime}
onValueChange={(v) => setPreviewTime(v)} onValueChange={(v) => setPreviewTime(v)}
onSlidingStart={() => { onSlidingStart={() => {
isSlidingRef.current = true; isSlidingRef.current = true;
onSlidingStart(); onSlidingStart();
}} }}
onSlidingComplete={(v) => { onSlidingComplete={(v) => {
isSlidingRef.current = false; isSlidingRef.current = false;
setPreviewTime(v); setPreviewTime(v);
onSlidingComplete(v); onSlidingComplete(v);
}} }}
minimumTrackTintColor={currentTheme.colors.primary} minimumTrackTintColor={currentTheme.colors.primary}
maximumTrackTintColor={currentTheme.colors.mediumEmphasis} maximumTrackTintColor='transparent'
thumbTintColor={Platform.OS === 'android' ? currentTheme.colors.white : undefined} thumbTintColor={Platform.OS === 'android' ? currentTheme.colors.white : undefined}
tapToSeek={Platform.OS === 'ios'} tapToSeek={Platform.OS === 'ios'}
/> />
</View>
<View style={[styles.timeDisplay, { paddingHorizontal: 14 }]}> <View style={[styles.timeDisplay, { paddingHorizontal: 14 }]}>
<View style={styles.timeContainer}> <View style={styles.timeContainer}>
<Text style={styles.duration}>{formatTime(previewTime)}</Text> <Text style={styles.duration}>{formatTime(previewTime)}</Text>