Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
45d4091c20 | |||
60c53a5894 | |||
032c823d3a | |||
66f724a3be | |||
bf0c81b484 | |||
aa72a17f44 | |||
8825e82634 | |||
f700d50dc8 | |||
a585270d21 | |||
7a23dda294 | |||
f3c324038f |
@ -1,5 +1,14 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
# v1.3.3
|
||||||
|
- Removed captions being read by screen readers
|
||||||
|
|
||||||
|
# v1.3.2
|
||||||
|
- Voiceover fix for captions
|
||||||
|
|
||||||
|
# v1.3.1
|
||||||
|
- ARIA improvements for captions being read
|
||||||
|
|
||||||
# v1.3.0
|
# v1.3.0
|
||||||
- Internationalization support (i18n) using default controls (required markup changes to controls)
|
- Internationalization support (i18n) using default controls (required markup changes to controls)
|
||||||
- ARIA enhancements for controls (required markup changes to controls)
|
- ARIA enhancements for controls (required markup changes to controls)
|
||||||
|
@ -88,14 +88,14 @@ This is an example `html` option with all controls.
|
|||||||
"</span>",
|
"</span>",
|
||||||
"</span>",
|
"</span>",
|
||||||
"<span class='player-controls-right'>",
|
"<span class='player-controls-right'>",
|
||||||
"<button type="button" data-player="mute">",
|
"<button type='button' data-player='mute'>",
|
||||||
"<svg class='icon-muted'><use xlink:href='#icon-muted'></use></svg>",
|
"<svg class='icon-muted'><use xlink:href='#icon-muted'></use></svg>",
|
||||||
"<svg><use xlink:href='#icon-volume'></use></svg>",
|
"<svg><use xlink:href='#icon-volume'></use></svg>",
|
||||||
"<span class='sr-only'>Toggle Mute</span>",
|
"<span class='sr-only'>Toggle Mute</span>",
|
||||||
"</button>",
|
"</button>",
|
||||||
"<label for='volume{id}' class='sr-only'>Volume</label>",
|
"<label for='volume{id}' class='sr-only'>Volume</label>",
|
||||||
"<input id='volume{id}' class='player-volume' type='range' min='0' max='10' value='5' data-player='volume'>",
|
"<input id='volume{id}' class='player-volume' type='range' min='0' max='10' value='5' data-player='volume'>",
|
||||||
"<button type="button" data-player="captions">",
|
"<button type='button' data-player='captions'>",
|
||||||
"<svg class='icon-captions-on'><use xlink:href='#icon-captions-on'></use></svg>",
|
"<svg class='icon-captions-on'><use xlink:href='#icon-captions-on'></use></svg>",
|
||||||
"<svg><use xlink:href='#icon-captions-off'></use></svg>",
|
"<svg><use xlink:href='#icon-captions-off'></use></svg>",
|
||||||
"<span class='sr-only'>Toggle Captions</span>",
|
"<span class='sr-only'>Toggle Captions</span>",
|
||||||
|
2
dist/plyr.js
vendored
2
dist/plyr.js
vendored
File diff suppressed because one or more lines are too long
@ -6,7 +6,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
<!-- Docs styles -->
|
<!-- Docs styles -->
|
||||||
<link rel="stylesheet" href="//cdn.plyr.io/1.3.0/docs.css">
|
<link rel="stylesheet" href="//cdn.plyr.io/1.3.3/docs.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
<!-- Styles -->
|
<!-- Styles -->
|
||||||
<link rel="stylesheet" href="https://cdn.plyr.io/1.3.0/plyr.css?3">
|
<link rel="stylesheet" href="https://cdn.plyr.io/1.3.3/plyr.css?3">
|
||||||
|
|
||||||
<!-- Docs styles -->
|
<!-- Docs styles -->
|
||||||
<link rel="stylesheet" href="https://cdn.plyr.io/1.3.0/docs.css?1">
|
<link rel="stylesheet" href="https://cdn.plyr.io/1.3.3/docs.css?1">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
@ -48,7 +48,7 @@
|
|||||||
<source src="https://cdn.selz.com/plyr/1.0/movie.webm" type="video/webm">
|
<source src="https://cdn.selz.com/plyr/1.0/movie.webm" type="video/webm">
|
||||||
|
|
||||||
<!-- Text track file -->
|
<!-- Text track file -->
|
||||||
<track kind="captions" label="English" srclang="en" src="https://cdn.selz.com/plyr/1.0/en.vtt" default>
|
<track kind="captions" label="English" srclang="en" src="https://cdn.selz.com/plyr/1.0/example_captions_en.vtt" default>
|
||||||
|
|
||||||
<!-- Fallback for browsers that don't support the <video> element -->
|
<!-- Fallback for browsers that don't support the <video> element -->
|
||||||
<a href="https://cdn.selz.com/plyr/1.0/movie.mp4">Download</a>
|
<a href="https://cdn.selz.com/plyr/1.0/movie.mp4">Download</a>
|
||||||
@ -97,13 +97,13 @@
|
|||||||
b.insertBefore(c, b.childNodes[0]);
|
b.insertBefore(c, b.childNodes[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})(document, "https://cdn.plyr.io/1.3.0/sprite.svg");
|
})(document, "https://cdn.plyr.io/1.3.3/sprite.svg");
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Plyr core script -->
|
<!-- Plyr core script -->
|
||||||
<script src="https://cdn.plyr.io/1.3.0/plyr.js?1"></script>
|
<script src="https://cdn.plyr.io/1.3.3/plyr.js?1"></script>
|
||||||
|
|
||||||
<!-- Docs script -->
|
<!-- Docs script -->
|
||||||
<script src="https://cdn.plyr.io/1.3.0/docs.js?1"></script>
|
<script src="https://cdn.plyr.io/1.3.3/docs.js?1"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "plyr",
|
"name": "plyr",
|
||||||
"version": "1.3.0",
|
"version": "1.3.3",
|
||||||
"description": "A simple HTML5 media player using custom controls",
|
"description": "A simple HTML5 media player using custom controls",
|
||||||
"homepage": "http://plyr.io",
|
"homepage": "http://plyr.io",
|
||||||
"main": "gulpfile.js",
|
"main": "gulpfile.js",
|
||||||
|
12
readme.md
12
readme.md
@ -27,9 +27,9 @@ Oh and yes, it works with Bootstrap.
|
|||||||
Check out [the changelog](changelog.md)
|
Check out [the changelog](changelog.md)
|
||||||
|
|
||||||
## Planned development
|
## Planned development
|
||||||
- Playlists
|
- Vimeo support
|
||||||
- ~~YouTube~~ and Vimeo support
|
|
||||||
- Playback speed
|
- Playback speed
|
||||||
|
- Playlists
|
||||||
- Multiple language captions (with selection)
|
- Multiple language captions (with selection)
|
||||||
- Audio captions
|
- Audio captions
|
||||||
... and whatever else has been raised in [issues](https://github.com/Selz/plyr/issues)
|
... and whatever else has been raised in [issues](https://github.com/Selz/plyr/issues)
|
||||||
@ -40,7 +40,7 @@ If you have any cool ideas or features, please let me know by [creating an issue
|
|||||||
|
|
||||||
Check `docs/index.html` and `docs/dist/docs.js` for an example setup.
|
Check `docs/index.html` and `docs/dist/docs.js` for an example setup.
|
||||||
|
|
||||||
**Heads up**, the example `index.html` file needs to be served from a webserver (such as Apache, Nginx, IIS or similar) unless you change the file sources to include http or https. e.g. change `//cdn.plyr.io/1.3.0/plyr.js` to `https://cdn.plyr.io/1.3.0/plyr.js`
|
**Heads up**, the example `index.html` file needs to be served from a webserver (such as Apache, Nginx, IIS or similar) unless you change the file sources to include http or https. e.g. change `//cdn.plyr.io/1.3.3/plyr.js` to `https://cdn.plyr.io/1.3.3/plyr.js`
|
||||||
|
|
||||||
### Bower
|
### Bower
|
||||||
If bower is your thang, you can grab Plyr using:
|
If bower is your thang, you can grab Plyr using:
|
||||||
@ -60,11 +60,11 @@ More info is on [npm](https://www.npmjs.com/package/ember-cli-plyr) and [GitHub]
|
|||||||
If you want to use our CDN, you can use the following:
|
If you want to use our CDN, you can use the following:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<link rel="stylesheet" href="https://cdn.plyr.io/1.3.0/plyr.css">
|
<link rel="stylesheet" href="https://cdn.plyr.io/1.3.3/plyr.css">
|
||||||
<script src="https://cdn.plyr.io/1.3.0/plyr.js"></script>
|
<script src="https://cdn.plyr.io/1.3.3/plyr.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also access the `sprite.svg` file at `https://cdn.plyr.io/1.3.0/sprite.svg`.
|
You can also access the `sprite.svg` file at `https://cdn.plyr.io/1.3.3/sprite.svg`.
|
||||||
|
|
||||||
### CSS
|
### CSS
|
||||||
If you want to use the default css, add the `plyr.css` file from /dist into your head, or even better use `plyr.less` or `plyr.sass` file included in `/src` in your build to save a request.
|
If you want to use the default css, add the `plyr.css` file from /dist into your head, or even better use `plyr.less` or `plyr.sass` file included in `/src` in your build to save a request.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// Plyr
|
// Plyr
|
||||||
// plyr.js v1.3.0
|
// plyr.js v1.3.3
|
||||||
// https://github.com/selz/plyr
|
// https://github.com/selz/plyr
|
||||||
// License: The MIT License (MIT)
|
// License: The MIT License (MIT)
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
@ -645,11 +645,20 @@
|
|||||||
player.media.currentTime.toFixed(1) <= _timecodeMax(player.captions[player.subcount][0])) {
|
player.media.currentTime.toFixed(1) <= _timecodeMax(player.captions[player.subcount][0])) {
|
||||||
player.currentCaption = player.captions[player.subcount][1];
|
player.currentCaption = player.captions[player.subcount][1];
|
||||||
|
|
||||||
// Render the caption
|
// Trim caption text
|
||||||
player.captionsContainer.innerHTML = player.currentCaption.trim();
|
var content = player.currentCaption.trim();
|
||||||
|
|
||||||
|
// Render the caption (only if changed)
|
||||||
|
if(player.captionsContainer.innerHTML != content) {
|
||||||
|
// Empty caption
|
||||||
|
// Otherwise NVDA reads it twice
|
||||||
|
player.captionsContainer.innerHTML = "";
|
||||||
|
|
||||||
|
// Set new caption text
|
||||||
|
player.captionsContainer.innerHTML = content;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Clear the caption
|
|
||||||
player.captionsContainer.innerHTML = "";
|
player.captionsContainer.innerHTML = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -919,6 +928,7 @@
|
|||||||
rel: 0,
|
rel: 0,
|
||||||
showinfo: 0,
|
showinfo: 0,
|
||||||
iv_load_policy: 3,
|
iv_load_policy: 3,
|
||||||
|
cc_load_policy: (config.captions.defaultActive ? 1 : 0),
|
||||||
cc_lang_pref: "en",
|
cc_lang_pref: "en",
|
||||||
wmode: "transparent",
|
wmode: "transparent",
|
||||||
modestbranding: 1,
|
modestbranding: 1,
|
||||||
@ -1019,7 +1029,7 @@
|
|||||||
function _setupCaptions() {
|
function _setupCaptions() {
|
||||||
if(player.type === "video") {
|
if(player.type === "video") {
|
||||||
// Inject the container
|
// Inject the container
|
||||||
player.videoContainer.insertAdjacentHTML("afterbegin", "<div class='" + config.selectors.captions.replace(".", "") + "' aria-live='assertive'><span></span></div>");
|
player.videoContainer.insertAdjacentHTML("afterbegin", "<div class='" + config.selectors.captions.replace(".", "") + "'><span></span></div>");
|
||||||
|
|
||||||
// Cache selector
|
// Cache selector
|
||||||
player.captionsContainer = _getElement(config.selectors.captions).querySelector("span");
|
player.captionsContainer = _getElement(config.selectors.captions).querySelector("span");
|
||||||
|
@ -19,9 +19,9 @@ $font-size-small: 14px !default;
|
|||||||
$font-size-base: 16px !default;
|
$font-size-base: 16px !default;
|
||||||
|
|
||||||
// Captions
|
// Captions
|
||||||
$font-size-captions-base: ceil(@font-size-base * 1.25) !default;
|
$font-size-captions-base: ceil($font-size-base * 1.25) !default;
|
||||||
$font-size-captions-medium: ceil(@font-size-base * 1.5) !default;
|
$font-size-captions-medium: ceil($font-size-base * 1.5) !default;
|
||||||
$font-size-captions-large: (@font-size-base * 2) !default;
|
$font-size-captions-large: ($font-size-base * 2) !default;
|
||||||
|
|
||||||
// Controls
|
// Controls
|
||||||
$control-spacing: 10px !default;
|
$control-spacing: 10px !default;
|
||||||
@ -211,7 +211,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: @bp-captions-large) {
|
@media (min-width: $bp-captions-large) {
|
||||||
font-size: $font-size-captions-medium;
|
font-size: $font-size-captions-medium;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user