import SegmentedControl from '@react-native-segmented-control/segmented-control'; import { diff } from 'deep-object-diff'; import { Asset } from 'expo-asset'; import { AVPlaybackStatus, ResizeMode, Video, VideoFullscreenUpdateEvent } from 'expo-av'; import React from 'react'; import { Platform, StyleProp, Text, View, ViewStyle } from 'react-native'; import { Colors } from '../../constants'; import { AndroidImplementationSelector } from './AndroidImplementationSelector'; import Player from './Player'; type VideoPlayerSource = | number | { uri: string; overrideFileExtensionAndroid?: string; headers?: { [fieldName: string]: string; }; } | Asset; export default function VideoPlayer(props: { style?: StyleProp; sources: VideoPlayerSource[]; }) { const [sourceIndex, setIndex] = React.useState(0); const [errorMessage, setError] = React.useState(undefined); const [useNativeControls, setUseNativeControls] = React.useState(false); const [resizeMode, setResizeMode] = React.useState(ResizeMode.CONTAIN); const prevStatus = React.useRef(null); const [status, setStatus] = React.useState({ isLoaded: false, }); const video = React.useRef