Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/progress bar markup #3

Closed

Conversation

xahgmah
Copy link
Contributor

@xahgmah xahgmah commented Dec 1, 2016

z4y4ts and others added 7 commits November 30, 2016 19:10
This changeset includes basic files required for an xblock. Such as:
- video_xblock.py with Python side of the VideoXBlock
- backends directory with BaseVideoPlayer class and it’s minimal implementation
  DummyPlayer
- student_view.html a template to render video
- Documentation in README.md
- setup.py with module specifications
- bower.json with external JavaScript dependencies
- requirements.txt with Python dependencies
- backends/youtube.py is a server-side part responsible for the logic
- static/html/youtube.html is a template to render video player
- static/css/videojs.css is a video.js skin definition to replicate
  Open edX video player look
- backends/wistia.py is a server-side part. Prepares context for video player
- static/html/wistiavideo.html is a template to render video player
Brightcove video players are special. They are based on a Video.js but
are loaded from the player.brightcove.net. Hence we use separate css.

- backends/brightcove.py is a server-side part responsible for the logic
- static/html/brightcove.html is a template to render video player.
  Also includes styles for Brightcove’s ‘default’ theme
- static/css/brightcove.css is a video.js skin definition to replicate
  Open edX video player look
To turn on playback rates support for all video.js plugins we patch
video.js Tech component.
Playback state includes:
- Current time to within 1 second. Unique for each player
- Playback rate. Unique for user, shared between players
- Volume. Unique for user, shared between players
- Muted. Unique for user, shared between players

Playback state is loaded after Video.js player is fully initialized and
passed from server in the video player’s template at rendering time.

Every video player is rendered inside an iframe and doesn’t have access
to xblock’s runtime. So they post their state to a parent frame as a
message using `Window.postMessage`. Parent frame in turn accepts and
verifies the state and post it to the server to a json handler resolved
by `runtime.handlerUrl(element, 'save_player_state’)` method.

Playback state is being saved at following events:
- Volume change
- Playback rate change
- Play
- Pause
- Video ended
Progress bar had incorrect position on Safari and IE
@xahgmah xahgmah closed this Dec 1, 2016
@z4y4ts z4y4ts deleted the bugfix/progress_bar_markup branch January 3, 2017 13:06
bryanlandia pushed a commit that referenced this pull request Jul 28, 2021
…hanges

Brings changes from working branch in raccoongang repo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants