@instructure/ui-media-player v10.4.0
category: packages
@instructure/ui-media-player
A cross-browser HTML5 media player built from the ground up using React. UI-Media-Player supports many custom options and views with opportunities to provide custom content via <MediaPlayer.Overlay>.
Features
- Compatible with Instructure-UI (https://instructure.design/)
- Accessible out of the box
- Themeable by design
Getting Started
Requirements
In order to utilize ui-media-player
you must have the following packages present in your library...
- React
15 || 16
- ReactDOM
15 || 16
Browser Support
- Chrome, Safari, Firefox, Edge (last two versions)
Installation
Add the package to your project using either npm
or yarn
.
NPM
npm i @instructure/ui-media-player
Yarn
yarn add @instructure/ui-media-player
Versioning
The UI-Media-Player uses SemVer for versioning.
MediaPlayer Components
<MediaPlayer>
Usage
<MediaPlayer
disableRightClick
poster="image/bigBuckBunnyPoster.png"
sources={[
{
label: "1080p",
src: "big_buck_bunny_1080p.mp4",
defaultSelected: true
},
{
label: "360p",
src: "big_buck_bunny_360p.mp4"
}
]}
tracks={[
{
src: "big_buck_bunny_captions.srt",
label: "English",
type: "subtitles",
language: "en"
}
]}
customControls={[
name: 'Comments',
label: 'Toggle comments',
onClick: () => setCommentVisibility(!commentsVisible),
checked: commentsVisible
]}
/>
PropTypes
Prop | Type | Default | Description |
---|---|---|---|
actionsRef | func | Function to be run on the ref of the actions component that returns functionality such as playVideo, pauseVideo, seekTo, and others. | |
alwaysShowControls | bool | false | If set to true, the controls will never dismiss |
captionOffset | number || string | 0 | Indicates the caption offset measurement for captions. Providing a number simply adds to the current measurement while a string will override the entire value. |
captionPosition | string | 'top' | Indicates the named position of the captions. 'top' , 'bottom' , 'left' , or 'right' |
children | children | Only accepts <MediaPlayer.Overlay> as a child to display information overtop of the video player | |
customControls | array | Additional controls to be added to the settings menu. Each object must contain values for name , label , onClick , and checked | |
disableRightClick | bool | false | Disable right click on the player container |
getSettings | func | Function to return an object with the saved settings | |
hideFullScreen | bool | false | If set to true, FullScreenButton is hidden |
label | string | '' | Give the player a label to be read by screen readers |
markers | array | [] | Accepts <MediaPlayer.Marker> components in an array |
poster | string | The poster image to use before the media is played | |
savePlayerSettings | func | A callback function to call when one of the supported settings changes | |
sources | array | [] | URL(s) of video to play. Each object in a provided array must contain values for both src ,label , and optionally defaultSelected . |
tracks | array | [] | Tracks of the video to play. Each object must contain values for src , label , type , and language |
translations | object | {} | Label overrides for i18n. Defaults to english. |
type | string | 'video' | One of type 'video' or 'youtube' |
startAt | number | 0 | Indicates the start time the media should be played back from |
fluidHeight | bool | false | DEPRECATED Indicates the player should fill the height of its container |
fluidWidth | bool | true | DEPRECATED Indicates the player should fill the width of its container |
Supported settings
Key | Type | Default | Description |
---|---|---|---|
captionPosition | string | 'bottom' | Position of the caption. One of type 'bottom' or 'top' |
captionColor | string | 'dark' | Color scheme of the caption. One of type 'dark' or 'light' |
captionFontSize | string | 'normal' | Size of the caption text. One of type 'norma' , 'large' or 'extra' |
volume | number | 1 | Volume of the player. Value must be between 0 and 1 |
playbackSpeed | number | 1 | Playback rate of the media. Value must be between 0.5 and 2 |
Translations
Translations are supported in <MediaPlayer>
and allow the following labels to be overridden from their defaults of English.
See in src/constants/translated/translations.js
Example
<MediaPlayer
{...otherProps}
translations={{
VOLUME_UNMUTED: "Volume",
VOLUME_MUTED: i18n.t('muted') // Functions that return a string are also valid
}}
/>
<MediaPlayer.Marker>
Usage
<MediaPlayer
{...otherProps}
markers={[
<MediaPlayer.Marker
active
hoverIcon={<HoverIcon />}
icon={<TimerIcon />}
label="A Marker"
onClick={() => {}}
onReached={() => {}}
time={someTime}
variant="circle"
/>
]}
/>
PropTypes
Prop | Type | Default | Description |
---|---|---|---|
active | bool | false | Describes if the Player Marker is active |
hoverIcon | node | A component that is displayed when the user hovers over the marker | |
icon | node | Icon used to represent the marker inside the Timebar | |
id | string | Required | Id value must be unique in order for focus management to work properly inside the MediaPlayer |
label | string | '' | Label for the Marker |
onClick | func | () => {} | Function that is called on click of the marker |
onReached | func | Function that is called upon reaching the marker location | |
time | number | 0 | Represents the time at which the marker will be triggered and fired onReached |
variant | string | 'hidden' | One of type 'circle' or 'hidden' |
<MediaPlayer.Overlay>
Usage
<MediaPlayer
{...props}>
<MediaPlayer.Overlay
>
() => (
<div>Content for the overlay</div>
)
</MediaPlayer.Overlay>
</MediaPlayer>
PropTypes
Prop | Type | Default | Description |
---|---|---|---|
children | function | Function that renders content to be displayed in the Overlay of the MediaPlayer | |
hideControls | bool | false | Hide the control bar completely |
<MediaPlayer.Playhead>
Usage
<MediaPlayer
playhead={
<MediaPlayer.Playhead
label="A Playhead"
onClick={() => {}}
variant="button"
>
} />
PropTypes
Prop | Type | Default | Description |
---|---|---|---|
icon | node | Represents the icon to be displayed on the Playhead | |
label | string | Required | Label prop for the playhead |
onClick | func | () => {} | Callback that is triggered onClick of the playhead |
menuItems | array | Array of Menu Components which can be used with the playhead and Variant must be menu | |
variant | string | Required | Describes is the playhead is one of button or menu |
30 days ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
2 months ago
5 months ago
6 months ago
5 months ago
5 months ago
6 months ago
6 months ago
5 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago