Giter VIP home page Giter VIP logo

sync-watch's Introduction

Hi there

isrealodejobi

About me

Front-end developer with more than 5 years of commercial development experience. Prefer to work with TypeScript.

Took part in open-source projects contribution like: react-data-grid (90k+ downloads/week). Was mentoring junior and middle software developers.

I'm keen on diving deep in DevOps and machine learning. Also, like to take photos of smiling people!

Tech stack GitHub Stats
  • React.js, Vue.js
  • JavaScript, TypeScript
  • REST, GraphQL, WebSocket (even using Socket.io), WebRTC
  • HTML, CSS (SASS, PostCSS)
  • Git, Docker
  • StoryBook
  • Unit-testing (Jest), E2E testing (Cypress)

Connect with me

LinkedIn Badge Gmail Badge

sync-watch's People

Contributors

dependabot[bot] avatar powerslime avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

sync-watch's Issues

Add episode change support

On receiving kodik_player_current_episode pause player (already done) and emit socket message. Also implement this method in player.

On receiving changeEpisode from socket player's changeEpisode should be triggered.

Kodik docs

change_episode method. Should be sended by postMessage (player._sendPostMessage method)

{
  method: "change_episode",
  season: 5,
  episode: 3
}

Example: player._sendPostMessage("change_episode", { season: 5, episode: 3 }, false). Should be done like seek method, with possibility to not send socket message.

Requirements:

Method name: changeEpisode
Example: player.methods.changeEpisode({ season, episode })

Add seek support

Users should be able to synchronize their time with another users by seeking the video.

Main problem that kodik player doesn't have encessary events. I think, it is possible to add by watching set currentTime if abs(newTime - oldTime) > 1 then we got a seek event.

When we got it a socket message should be emited to let other users know our currentTime. It is possible by trigger player.seek(currentTime) by default it sends message to socket too.

Add buffering events

bufferingStart
bufferingEnd

Using this.emit() in player instance.

It's possible by always trying to send play/pause commands. If player didn't send postMessage Event back -- it's buffering. But... Looks weird... Should be a better way to do this.

It's necessary to pause all other clients when one of them have slow internet connection and movie starts buffering. When buffering is end -- pause and seek methods should be called. To re-synchronize all the clients. After that we can start playing movie again.

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.