Go to file
coofzilla 253ffb5956
feat(ios): Add ios support for accessing WebVTT Subtitle Content (#3541)
* feature: add support to get subtitle content data

* refactor: return a string of the subtitles

Push the parsing/formatting to the consumer side.

* chore: add types for new subtitle feature

* chore: run swiftlint and swiftformat

* chore: add documentation for new onSubtitleTracks callback

* chore: added test uri; basic implementation of feature; hotfix onTextTracks

added optional chaining for `return x?.selected` because tracks that don't have a track selected either by default or manually will return undefined and this can cause an error.

* feat: rename onSubtitleTracks to onTextTrackDataChanged

Renamed the onSubtitleTracks event to onTextTrackDataChanged across the codebase to clearly indicate the callback's purpose: being called when the text track's data changes. This change is reflected in the events documentation, example usage in VideoPlayer.tsx, and the relevant iOS implementation files for consistency and clarity, in line with PR feedback.

* chore: omit target property

target could be confusing for users so we have removed it. using the delete operator instead of using {target,...eventData} as that would give an eslint error about unused vars.
2024-02-29 14:41:04 +01:00
.github chore(ci): use macos-14 for iOS builds (#3526) 2024-02-09 15:24:10 +01:00
android fix(android): suppress lint PrivateResource (#3531) 2024-02-14 13:13:36 +01:00
docs feat(ios): Add ios support for accessing WebVTT Subtitle Content (#3541) 2024-02-29 14:41:04 +01:00
examples feat(ios): Add ios support for accessing WebVTT Subtitle Content (#3541) 2024-02-29 14:41:04 +01:00
ios feat(ios): Add ios support for accessing WebVTT Subtitle Content (#3541) 2024-02-29 14:41:04 +01:00
scripts chore: enhance CI tests (#3344) 2023-12-02 15:58:43 +01:00
src feat(ios): Add ios support for accessing WebVTT Subtitle Content (#3541) 2024-02-29 14:41:04 +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 chore: release v6.0.0-beta.5 2024-02-02 12:56:33 +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