Controls elements and utilities for react-native video players (react-native-video, expo-av, etc.).
video-controls-demo.webm
npm install @premieroctet/react-native-video-controls
yarn add @premieroctet/react-native-video-controls
Additionally, you need to install react-native-gesture-handler (at least v2) and react-native-reanimated (at least v2).
No other dependency is required, which makes the lib fully compatible with Expo.
A complete example app with a basic usage is available in the example folder.
<VideoControls
componentsProps={componentProps}
components={components}
onFastForward={onFastForward}
onFastRewind={onFastRewind}
videoElement={
<Video
source={{
uri: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
}}
useNativeControls={false}
onLoad={onLoad}
onPlaybackStatusUpdate={onPlaybackStatusUpdate}
shouldPlay
rotation={isFullScreen ? 90 : 0}
style={[
{ width: '100%' },
isFullScreen
? {
height: '100%',
}
: { aspectRatio: 16 / 9 },
]}
ref={videoRef}
pointerEvents="none"
/>
}
/>
See API for the list of available components and hooks.
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
Inspired from react-native-video-controls