Skip to content

A basic media componet that displays video and audio. This component uses the HTML5 video and audio specification and has a flash fallback for browsers that don't support HTML5

License

Notifications You must be signed in to change notification settings

deltanet/adapt-media-autoplay

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

adapt-media-autoplay

image of media component

Media Autoplay is a presentation component bundled with the Adapt framework.

This component is media playback component for both audio and video. It uses HTML5 audio and video for browsers that support it and a Flash fallback for browsers for when HTML5 audio/video isn't supported or can't be used.

The component uses MediaElement.js (v2.21.2), a player with a number of useful features including subtitles and accessible (and CSS-skinnable) controls. MediaElement.js carries the MIT license compatible with Adapt.

Whilst the underlying MediaElement player does have support for playing both YouTube and Vimeo videos, this no longer works very well due to changes in the YouTube/Vimeo player APIs - it is therefore strongly suggested you use the dedicated YouTube / Vimeo components instead.

Visit the Media wiki for more information about its functionality and for explanations of key properties.

Installation

This plugin must be installed manually.

Settings Overview

The attributes listed below are used in components.json to configure Media, and are properly formatted as JSON in example.json. Visit the Media wiki for more information about how they appear in the authoring tool.

Attributes

core model attributes: These are inherited by every Adapt component. Read more.

_component (string): This value must be: media.

_classes (string): CSS class name to be applied to Media’s containing div. The class must be predefined in one of the Less files. Separate multiple classes with a space.

_layout (string): This defines the horizontal position of the component in the block. Acceptable values are full, left or right.

instruction (string): This optional text appears above the component. It is frequently used to guide the learner’s interaction with the component.

_setCompletionOn (string): This determines when Adapt will register this component as having been completed by the user. Acceptable values are inview (triggered when the component is fully displayed within the viewport), play (triggered when playback is initiated), or ended (triggered when the video has reached the end of playback).

_autoPlay (boolean): If set to true, the video will autoplay. Will behave differently on mobile devices where user interaction may be reqired to start play.

_useClosedCaptions (boolean): If set to true, video will allow for Closed Captions and the cc object will be required. The default is false.

_showCaptionsButton (boolean): If set to true, video will show a button to control the Closed Captions. The default is false.

_allowFullScreen (boolean): Determines whether fullscreen mode is available or not. Note that changing this setting has no effect in Internet Explorer 9 as this browser does not support fullscreen mode for HTML video.

_allowFullScreen (boolean): Determines whether fullscreen mode is available or not. Note that changing this setting has no effect in Internet Explorer 9 as this browser does not support fullscreen mode for HTML video.

_pauseWhenOffScreen (boolean): If set to true, pause playback when video is no longer in view. The default is false.

_playsinline (boolean): If set to true, videos will play 'inline' on iPhones (the same way they do on iPads). Note that this feature is only available in iOS10 and above. The default is false.

_preventForwardScrubbing (boolean): If enabled, will attempt to prevent users from skipping ahead in media (audio/video) unless '_isComplete' is marked as 'true'. Users can skip backwards, and back up to the maxViewed time tracked by updateTime. Note: This does not apply to full screen iOS users and IE users may be able to circumvent this rule by using video play speed options in browser.

_startLanguage (string): If using closed captions with multiple languages, use this property to specify which language should be shown by default. The value of this property must match one of the srclang values.

_showVolumeControl (boolean): If enabled, the volume control will appear in the media player (Not supported on mobile devices)

_startVolume (string): Defines the default volume as a percentage (Not supported on mobile devices). This can be set with or without the percentage sign in the string

_showReplayOverlay (boolean): When enabled, the play button will be replaced with a replay button after the video has completed.

_showReplayOverlay (boolean): When enabled, the play button will be replaced with a replay button after the video has completed.

_startVolume (string): Defines the default volume as a percentage (Not supported on mobile devices). This can be set with or without the percentage sign in the string

_media (object): The media attributes group will contain different values depending on the type of media: video or audio. For video it contains values for mp4, webm, ogv, poster, and cc. The properties mp4, webm and ogv are all optional, but at least one is required (see below for alternate properties for YouTube/Vimeo video).
For audio it contains mp3 and ogg. As with video, both are optional, but at least one is required.
The decision to include more than one file format is typically based on the browser/s used by the target audience. The most widely supported video file format is mp4 (specifically H.264/MPEG-4 Part 10 AVC). The most widely supported audio format is mp3.

mp4 (string): File name (including path) of the video file. Path should be relative to the src folder (e.g., course/en/video/video-1.mp4).

webm (string): File name (including path) of the video file. Path should be relative to the src folder (e.g., course/en/video/video-1.webm).

ogv (string): File name (including path) of the video file. Path should be relative to the src folder (e.g., course/en/video/video-1.ogv).

poster (string): File name (including path) of the optional image to be shown while the video is downloading, or until the user hits the play button. If this is not included, the first frame of the video will be used instead. Path should be relative to the src folder (e.g., course/en/images/video-1.jpg).

cc (array): Closed captions in multiple languages may be provided. Each object in this list contains values for srclang and src.

srclang (string): The language of the closed captions (e.g., en for English). Acceptable values can be found at http://www.w3schools.com/tags/ref_language_codes.asp.

src (string): File name (including path) of the closed captions resource accepted by <track> (i.e., the VTT file). Path should be relative to the src folder (e.g., course/en/video/big_buck_bunny_sub.vtt).

mp3 (string): File name (including path) of the audio file. Path should be relative to the src folder (e.g., course/en/audio/audio-1.mp3).

ogg (string): File name (including path) of the audio file. Path should be relative to the src folder (e.g., course/en/audio/audio-1.ogg).

_closedCaptionsIcon (string): CSS class name for the icon to be shown on the Closed Captions button.

closedCaptionsNoneButton (string): This text appears on the button that set the Closed Caption to none.

_transcript (object): The transcript attributes group contains values for _setCompletionOnView, _inlineTranscript, _externalTranscript, inlineTranscriptButton, inlineTranscriptCloseButton, inlineTranscriptBody, transcriptLinkButton, and transcriptLink.

_isEnabled (boolean): This determines if the video instruction functionality is used. This is false by default.

_setCompletionOnView (boolean): This determines if Adapt will register this component as having been completed by the user when the inline transcript is opened. This is true by default.

_inlineTranscript (boolean): Determines whether the button that toggles the display of the inline transcript text will be displayed or not.

_externalTranscript (boolean): Determines whether the button that links to the optional external transcript will be displayed or not.

inlineTranscriptButton (string): This text appears on the button that toggles the visibility of the inline transcript text. It is displayed when the inline transcript text is hidden. If no text is provided, the transcriptLink will be displayed on the button.

inlineTranscriptCloseButton (string): This text appears on the button that toggles the visibility of the inline transcript. It is displayed when the inline transcript text is visible.

inlineTranscriptTitle (string): This optional text appears as the notify title for the transcript.

inlineTranscriptBody (string): This optional text appears as the notify body for the transcript.

transcriptLinkButton (string): This text appears on the button that links to the optional external transcript. If no text is provided, the transcriptLink will be displayed on the button.

transcriptLink (string): File name (including path) of the optional external transcript. Path should be relative to the src folder (e.g., course/en/pdf/video01_transcript.pdf).

_playerOptions (object): This optional object can be used to customize the player. Visit the MediaElement website for a list of what options are available. Options are configured in components.json. See example.json for a suggested configuration.

Note:
The _playerOptions feature is experimental. As these settings are not implemented by the Adapt community, there is no guarantee that all features and combinations thereof will be compatible with your device set up.

JSON Examples

The attributes described above focus on the component's use with standard video. They are properly formatted as JSON in example.json The same model can be applied to the component's use with audio and YouTube videos.

Standard video example:

"_media": {
	"mp4": "course/en/video/video.mp4"
},

YouTube video example:

"_media": {
  "source": "//www.youtube.com/watch?v=RT-KmgAgxuo",
  "type": "video/youtube"
},

Note: it is strongly suggested you use the dedicated YouTube component if you want to include YouTube videos in your Adapt course.

Vimeo video example:

"_media": {
  "source": "//player.vimeo.com/video/96961553",
  "type": "video/vimeo"
},

Note: it is strongly suggested you use the dedicated Vimeo component if you want to include Vimeo videos in your Adapt course.

Audio example:

"_media": {
  "mp3": "course/en/audio/audio.mp3",
  "ogg": "course/en/audio/audio.ogg"
},

Accessibility

Media has two elements that have been assigned a label using the aria-label attribute: ariaRegion and transcriptButton. These labels are not visible elements. They are utilized by assistive technology such as screen readers. Should the label texts need to be customised, they can be found within the globals object in properties.schema.

Events

Whenever playback is initiated, the component will emit a media:stop event to notify other plugins that make use of audio or video that they should stop playback.

Limitations

Browser Limitation
Chrome No known issues.
FireFox No known issues.
iOS/iPad No known issues.
Android FireFox 33.1 with Vimeo: 'This video can't be played with your current setup'.
Edge No known issues.
IE11 No known issues.
IE10 No known issues.
IE9 Vimeo: ‘Sorry this video does not exist’.
IE8
  • Due to the lack of support for HTML audio/video, users will need to have Adobe Flash Player v10 (or better) or Microsoft Silverlight installed to enable media playback.
  • YouTube: control bar missing
  • YouTube/Vimeo: doesn’t track play/ended events

Version number: 5.1.3 adapt learning logo
Framework versions: 5+
Author / maintainer: Deltanet, plus forked code from Adapt Core Team, contributors Accessibility support: WAI AA
RTL support: Yes
Cross-platform coverage: Chrome, Chrome for Android, Firefox (ESR + latest version), Edge, IE11, Safari 12+13 for macOS/iOS/iPadOS, Opera

About

A basic media componet that displays video and audio. This component uses the HTML5 video and audio specification and has a flash fallback for browsers that don't support HTML5

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 85.3%
  • Less 12.9%
  • Handlebars 1.8%