Go to file
Subin Yang ca795f298a
feat(android): Support Common Media Client Data (CMCD) (#4034)
* feat(VideoNativeComponent.ts): add support for cmcd configuration in VideoSrc type to enable cmcd feature on android
feat(video.ts): introduce CmcdMode enum and CmcdConfiguration type to define cmcd configuration options

* feat(Video.tsx): add support for CMCD configuration in Video component to handle Content Management and Delivery (CMCD) headers for Android platform.

* feat(CMCDProps.kt): add CMCDProps class to handle CMCD related properties and parsing logic for React Native module

* feat(CMCDConfig.kt): add CMCDConfig class to handle CMCD configuration for ExoPlayer with support for custom data and configuration options.

* feat(ReactExoplayerViewManager.java): add support for CMCD configuration in ReactExoplayerViewManager to enable Content Management and Control Data (CMCD) for better video playback optimization.

* feat(ReactExoplayerView.java): add support for setting CmcdConfiguration.Factory to customize CMCD configuration for media playback

* feat(Source.kt): add support for CMCD properties linked to the source to enhance functionality and data handling

* docs(props.mdx): add documentation for configuring CMCD parameters in the component, including usage examples and default values

* refactor(ReactExoplayerViewManager.java): remove unused PROP_CMCD and prevCmcdConfig variables to clean up code and improve readability

* refactor(Video.tsx): simplify cmcd configuration logic for better readability and maintainability

* docs(props.mdx): improve props documentation for clarity and consistency
feat(props.mdx): add definitions for CmcdMode enum and CmcdData type to enhance understanding of CMCD data structure and usage

* refactor(CMCDProps.kt): refactor CMCDProps class to data class for improved readability and immutability
-  update CMCDProps class to use List instead of Array for properties

* refactor(Video.tsx): refactor createCmcdHeader function to improve code readability and reduce duplication

* fix(CMCDProps.kt): remove import statement for CmcdConfiguration

* feat(ReactExoplayerView.java): add support for CMCD configuration in ReactExoplayerView component
feat(ReactExoplayerViewManager.java): remove redundant CMCD configuration logic from ReactExoplayerViewManager to simplify code and improve maintainability

* fix(Video.tsx): merge _cmcd memo into src memo for optimization
2024-08-22 10:47:51 +02:00
.github infra: add issue validator and stale action (#4061) 2024-08-21 09:55:45 +02:00
android feat(android): Support Common Media Client Data (CMCD) (#4034) 2024-08-22 10:47:51 +02:00
docs feat(android): Support Common Media Client Data (CMCD) (#4034) 2024-08-22 10:47:51 +02:00
examples fix(ios): override source metadata with custom metadata (#4050) 2024-08-05 11:59:49 +02:00
ios fix crash on source change, if the app was put in bg beforehand (#4074) 2024-08-22 10:30:23 +02:00
scripts chore: enhance CI tests (#3344) 2023-12-02 15:58:43 +01:00
src feat(android): Support Common Media Client Data (CMCD) (#4034) 2024-08-22 10:47:51 +02:00
windows Merge branch 'master' into sdkVersion 2023-09-19 09:09:13 +02:00
.eslintignore chore: lint project (#3279) 2023-10-07 12:56:35 +02:00
.eslintrc fix: ensure poster works as expected and add it to the sample (#3643) 2024-04-05 10:35:57 +02:00
.gitignore feat: add typescript (#3266) 2023-10-06 18:39:14 +02:00
.nvmrc feat: added .nvmrc 2023-07-19 16:21:12 +09:00
.prettierrc feat: add typescript (#3266) 2023-10-06 18:39:14 +02:00
.release-it.json fix: fix bad package release process (#3347) 2023-11-15 21:39:34 +01:00
app.plugin.js feat: add expo plugins (#3933) 2024-07-10 11:49:13 +02:00
CHANGELOG.md chore: release v6.4.5 2024-08-17 15:37:45 +02:00
CONTRIBUTING.md chore: update repository links (#3742) 2024-05-07 17:25:09 +02:00
LICENSE Update copyright 2022-06-22 06:35:04 +00:00
package.json chore: release v6.4.5 2024-08-17 15:37:45 +02:00
react-native-video.podspec feat(fabric): updated ios podspec for implementing new architecture (#3961) 2024-07-02 10:56:14 +02:00
README.md Update README.md (#3781) 2024-05-16 11:43:11 +02:00
tsconfig.build.json feat: add typescript (#3266) 2023-10-06 18:39:14 +02:00
tsconfig.json feat: add expo plugins (#3933) 2024-07-10 11:49:13 +02:00

react-native-video

🎬 <Video> component for React Native

Documentation

documentation is available at thewidlarzgroup.github.io/react-native-video/

Usage

// Load the module

import Video, {VideoRef} from 'react-native-video';

// Within your render function, assuming you have a file called
// "background.mp4" in your project. You can include multiple videos
// on a single screen if you like.

const VideoPlayer = () => {
 const videoRef = useRef<VideoRef>(null);
 const background = require('./background.mp4');

 return (
   <Video 
    // Can be a URL or a local file.
    source={background}
    // Store reference  
    ref={videoRef}
    // Callback when remote video is buffering                                      
    onBuffer={onBuffer}
    // Callback when video cannot be loaded              
    onError={onError}               
    style={styles.backgroundVideo}
   />
 )
}

// Later on in your styles..
var styles = StyleSheet.create({
  backgroundVideo: {
    position: 'absolute',
    top: 0,
    left: 0,
    bottom: 0,
    right: 0,
  },
});

Community support

We have an discord server where you can ask questions and get help. Join the discord server

Enterprise Support

📱 react-native-video is provided as it is. For enterprise support or other business inquiries, please contact us 🤝. We can help you with the integration, customization and maintenance. We are providing both free and commercial support for this project. let's build something awesome together! 🚀

TheWidlarzGroup