GithubHelp home page GithubHelp logo

Comments (5)

brentvatne avatar brentvatne commented on April 29, 2024

@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.

bparadie avatar bparadie commented on April 29, 2024

@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.

johanneslumpe avatar johanneslumpe commented on April 29, 2024

@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.

bparadie avatar bparadie commented on April 29, 2024

@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.

arilitan avatar arilitan commented on April 29, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.