* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* feat(android): implement live buffer configuration
* chore: fix linter
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* feat: expose bufferingStrategy to app and change default behavior
rename disableBuffering undocumented prop to bufferingStrategy and document it.
before this change, default was 'dependingOnMemory'. It can trigger some unnecessary gc() call on android.
* feat(ios): add `showNotificationControls` prop
* feat(android): add `showNotificationControls` prop
* add docs
* feat!: add `metadata` property to srouce
This is breaking change for iOS/tvOS as we are moving some properties, but I believe that this will more readable and more user friendly
* chore(ios): remove UI blocking function
* code review changes for android
* update example
* fix readme
* fix typos
* update docs
* fix typo
* chore: improve sample metadata notification
* update codegen types
* rename properties
* update tvOS example
* reset metadata on source change
* update docs
---------
Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix: ensure tracks are well displayed in the sample
* feat(android): implement playback from asset folder
* chore(android): fix linter
* chore: move sample mp4 from package assets to exemple assets
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix: ensure tracks are well displayed in the sample
* fix(iOS): ensure orientation is correctly reported
* chore: fix build
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix: ensure tracks are well displayed in the sample
* fix(android): add onSeek callback when controls are enable
* chore: remove seekTime which is useless now
* doc: indicate that onSeek is not reported when controls are enable on iOS
* fix: ensure poster works as expected and add it to the sample
* chore: drop audioOnly property as not implemented on any platform
* fix(ios): do not save pause state before seeking
* fix(ts): onPlaybackRateChangeData was not correctly typed
* 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>
* 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.
* feat: implement onAudioTracks and onTextTracks on ios
* chore: lint code
* fix: rework previous fix to fix linter and be more aligned with architecture
---------
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>