JSPM

@instructure/ui-media-player

11.5.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 2058
    • Score
      100M100P100Q127259F
    • License MIT

    A cross-browser HTML5 media player.

    Package Exports

    • @instructure/ui-media-player
    • @instructure/ui-media-player/es/index.js
    • @instructure/ui-media-player/lib/index.js

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@instructure/ui-media-player) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme


    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

    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