Comments (5)
@bparadie - @johanneslumpe and I thought about this, the main issue is that because we can't really make this a "controlled" component in the React sense - we can't have the value passed in to current time always be kept in sync with the actual time - it made more sense for us to break out of the React model and seek imperatively here. Thoughts?
from react-native-video.
@brentvatne Just checking whether I got your point: currentTime
cannot be safely kept in sync w/t AVPlayerItem.currentTime
and that's why you suggest using a different name i.e. seek
.
Here is my take:
I did notice that the currentTime
setter (JS to native) works as I would expect it to work with HTMLVideoElement
. Now, the currentTime
getter is a different story. I don't have a good solution for getting the currentTime
other than recording the current time via incoming progress events.
Or is there a way to retrieve property values directly through the bridge?
If so then this method added to RCTVideo.m
should make everything work, correct?
- (float)getCurrentTime
{
return _playerItem != NULL ? CMTimeGetSeconds(_playerItem.currentTime) : 0;
}
But even with currentTime
setter working and getter not working I would prefer currentTime
, because it's in line with the HTMLVideoElement
spec.
BTW, similar arguments apply to repeat
versus loop
(http://www.w3schools.com/tags/att_video_loop.asp).
from react-native-video.
@bparadie The bridge is 100% async, in order to retrieve a value you will have to provide a callback which can be called with the new value.
from react-native-video.
@johanneslumpe Yeah, that's what I thought. You'd probably have to observe a custom event and then somehow call the video player and wait for the result. Now, how would this all work with multiple video players on the page? The notification system is kind of global from what I can tell. That means each video player instance would probably need a UID, otherwise you wouldn't know which video player's currentTime
was the right one.
It would be great if react-native
did some magic in the background and provide an easy way for retrieving property values. I am okay with async. I remember vaguely that video.js
, or Brightcove
has a similar problem with currentTime
in Flash Player environments. Because the Flash/JS bridge is async you have to pass a callback function to getCurrentTime
.
from react-native-video.
Wanted to re-open the discussion here if needed. We are trying to clean up open issues in this repo, so if no further comments in the next couple weeks it will be closed.
from react-native-video.
Related Issues (20)
- [BUG]: `onTextTracks` Callback Not Logging Subtitles Correctly Despite VTT Files Being Fetched HOT 2
- [BUG]: iOS Audio Ducking on muted or silent video HOT 5
- [BUG]: onSeek event called instantly on Android
- [BUG]: iOS – After returning to active after Mirroring, video auto-restarts HOT 1
- [BUG]: Video's not playing (black screen) specifically on iOS 17.0.2 HOT 3
- [BUG]: requireNativeComponent: "RCTVideo" was not found in the UIManager HOT 3
- [BUG]:v6 beta don‘t load mp4 HOT 3
- [BUG]: v6 don't load Internet source mp4 style file,but local source mp4 and other file style can be loaded HOT 2
- Offline DRM support
- [BUG]: How do i import react native video in swift file (iOS native side) HOT 6
- [BUG]: multi audio selection HOT 2
- [BUG]: In iOS, seek is working perfect in portrait mode but when i rotate my device in landscape then on seek i am getting JSON value '0' of type NSNumber cannot be converted to NSDictionary HOT 7
- [Feature]: Privacy Manifest for Promises SDK HOT 3
- [BUG]: shutterColor not typed in Typescript HOT 3
- [BUG]: AVFoundationErrorDomain on iOS when playing .mp3 file HOT 4
- The screen turns off in fullscreen mode HOT 6
- [BUG]: codepush + RNV6, TypeError: Cannot read property 'ScaleAspectFill' of undefined HOT 3
- [Feature]: Improve error typing and management for entire react-native-video package HOT 2
- [BUG]: React Native Video Player Crashes on iOS and Apple TV with Invalid URL HOT 4
- [BUG]: After 5 to 6 seek operations the player frames starts to lag and flick.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-native-video.