react-native-video: Video player component for React Native
Native iOS/Android video playback with streaming and DRM.
Learn more about react-native-video
React Native Video is a cross-platform component library that provides native video playback capabilities for React Native applications on iOS and Android devices. The library bridges native video player implementations on each platform, exposing a unified React component interface that wraps AVPlayer on iOS and ExoPlayer on Android. It supports advanced features including adaptive bitrate streaming protocols like HLS and DASH, digital rights management through platform-specific DRM systems, and hardware-accelerated decoding for efficient performance. The component integrates into React Native's architecture by implementing native modules that communicate with JavaScript through the bridge, allowing developers to control playback state, handle events, and configure video properties declaratively. This approach leverages each platform's optimized media frameworks while maintaining a consistent API surface across operating systems.
DRM and Adaptive Streaming
Built-in Widevine and FairPlay DRM with native HLS, DASH, and SmoothStreaming support. Handles adaptive bitrate streaming without additional configuration or third-party dependencies.
New Architecture Compatible
Version 7 fully supports React Native's new architecture through an interoperability layer. Version 6 maintains backward compatibility for gradual migration paths.
Granular Playback Control
Configurable API for audio/subtitle track selection, buffer management, and playback event handling. Provides low-level control over native player behavior through the JavaScript bridge.
import React from 'react';
import Video from 'react-native-video';
const VideoPlayer = () => {
return (
<Video
source={{ uri: 'https://example.com/video.mp4' }}
style={{ width: '100%', height: 300 }}
controls={true}
paused={false}
/>
);
};Alpha release enhancing source loading and adding Expo config for Android notification controls; fixes PiP control behavior and iOS player recreation bug.
- –Configure Expo plugin for Android notification controls; source loading logic has been enhanced but specifics are not detailed.
- –Apply fix for iOS AVPlayerViewController recreation issue and Android PiP control disablement to avoid UI conflicts.
Bug-fix alpha addressing Android foreground service handling and an iOS production crash via Nitro version bump.
- –Update Android integration if using background playback; foreground service now starts automatically when required.
- –Upgrade to this alpha on iOS to resolve production build crashes caused by the previous Nitro dependency version.
Alpha release adds notification controls, Android surface-type prop, and flexible page sizes; bumps nitro modules dependency.
- –Enable notification controls for media playback and configure Android surface type via new prop.
- –Upgrade nitro modules dependency; Android now supports flexible page sizes for improved rendering.
Top in Mobile & Desktop
Related Repositories
Discover similar tools and frameworks used by developers
react-native-fs
Cross-platform native filesystem operations for React Native applications.
react-native-image-picker
Cross-platform native media picker bridge for React Native.
react-native-svg
Native SVG rendering for React Native applications.
react-native
JavaScript framework rendering React as native iOS and Android UI.
SnapKit
Swift DSL for type-safe programmatic Auto Layout constraints.