Go to file
coofzilla f4cce2ecdb
feat: implement opacity to control visibility of subtitles (#3583)
* feat: implement opacity to control visibility of subtitles

implemented per discussion on https://github.com/react-native-video/react-native-video/issues/3579

updated docs and linked onTextTrackDataChanged to the subtitle style to clarify intent on how to control visibility.

* chore: update type so that we use a union of 0 1 vs any number

* chore: run ktlint to get rid of white spaces

* feat: add ability to have range of numbers for opacity; while, 0 will still not render the subtitles.

added util function for safeGetFloat

updated types

* feat: add ability to suppress subtitles with opacity 0

add data structure for subtitle styles for extensibility

* chore: run yarn check-ios

* chore: update documentation to clarify differences between android and ios

* Update android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-03-14 11:29:50 +01:00
.github feat: move require (local files) to source.uri (#3535) 2024-03-13 08:23:11 +01:00
android feat: implement opacity to control visibility of subtitles (#3583) 2024-03-14 11:29:50 +01:00
docs feat: implement opacity to control visibility of subtitles (#3583) 2024-03-14 11:29:50 +01:00
examples feat: move require (local files) to source.uri (#3535) 2024-03-13 08:23:11 +01:00
ios feat: implement opacity to control visibility of subtitles (#3583) 2024-03-14 11:29:50 +01:00
scripts chore: enhance CI tests (#3344) 2023-12-02 15:58:43 +01:00
src feat: implement opacity to control visibility of subtitles (#3583) 2024-03-14 11:29:50 +01: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 chore: lint project (#3279) 2023-10-07 12:56:35 +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
CHANGELOG.md chore: release v6.0.0-beta.5 2024-02-02 12:56:33 +01:00
CONTRIBUTING.md Update PR guide 2022-06-15 13:59:03 +03:00
LICENSE Update copyright 2022-06-22 06:35:04 +00:00
package.json Fabric (New Architecture) codegen support (#3487) 2024-03-07 11:35:17 +01:00
react-native-video.podspec feat: add visionOS support (#3425) 2024-01-15 08:04:29 +01:00
README.md docs: add support by section (#3435) 2023-12-21 08:45:28 +01:00
tsconfig.build.json feat: add typescript (#3266) 2023-10-06 18:39:14 +02:00
tsconfig.json Chore/prepare alpha 9 release (#3320) 2023-10-27 08:59:46 +02:00

react-native-video

🎬 <Video> component for React Native

Note: version 5.2.1 won't have any updates. We are currently working on making a 6.0.0 fully stable

Documentation

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

if you find some issue with new version, don't hesitate to open a ticket! Also Old version can be found here

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,
  },
});

Supported by

📱 TWG provides both free and commercial support for this project. Feel free to contact us 🤝 to build something awesome together! 🚀

TheWidlarzGroup