The ekoshell
plugin.
Example
// in falcon player options
"plugins": {
"ekoshell": {
"components": {
"watermark": true,
"shareButton": {
"type": "twitter"
}
},
"skipEOV": true,
"muteMessage": {
"showMuteMessage": false
}
}
}
- Table of Contents
- Init Options
- components.fullscreenButtonp
- components.volumeButtonp
- components.subtitlesButtonp
- components.customButtonsp
- themep
- components.transportp
- components.tickerp
- components.watermarkp
- components.logoButtonp
- components.shareButtonp
- components.sharep
- components.copyLinkButtonp
- components.endScreenp
- components.pauseScreenp
- components.bufferingScreenp
- components.backButtonp
- components.feedbackp
- eovNextTimerp
- skipEOVp
- projectInfop
- appUrlp
- envp
- rotationHintp
- muteMessagep
- ringerMessagep
- enableOnboardingp
- Methods
- Definitions
- Init Options
Init Options
options : object
Initialization options for the ekoshell plugin.
- options :
object
- .components.fullscreenButton :
object
- .components.volumeButton :
object
- .components.subtitlesButton :
object
- .components.customButtons :
object
- .theme :
object
- .components.transport :
object
- .components.ticker :
object
- .components.watermark :
boolean
- .components.logoButton :
object
- .components.shareButton :
boolean
- .components.share :
array
- .components.copyLinkButton :
boolean
- .components.endScreen :
object
- .components.pauseScreen :
object
- .components.bufferingScreen :
object
- .components.backButton :
object
- .components.feedback :
boolean
- .eovNextTimer :
number
- .skipEOV :
boolean
- .projectInfo :
object
- .appUrl :
object
- .env :
object
- .rotationHint :
object
- .muteMessage :
object
- .ringerMessage :
object
- .enableOnboarding :
boolean
- .components.fullscreenButton :
options.components.fullscreenButton : object
Fullscreen Button.
The Fullscreen Button has 2 behaviors, the first is “fullscreen” which just means it will work as intended and enter the player to fullscreen,
the other behavior is “banner” which will open up the “download the app” banner. the default behavior is “fullscreen” but we override it in some cases when fullscreen is not supported.
Default: {
behavior: 'fullscreen'
}
Properties
Name | Type | Description |
---|---|---|
fullscreenButton | boolean | object |
if set to false, hides the fullscreen button |
behavior | string |
see above description |
icon | object |
icon definitions |
icon.maximize | iconUrl |
the icon for maximizing (appears while not in fullscreen) |
icon.minimize | iconUrl |
the icon for minimizing (appears while in fullscreen) |
order | integer |
order index within the button strip (default: 30) |
Example
"components": {
"fullscreenButton": {
behavior: 'fullscreen'
}
}
options.components.volumeButton : object
Volume Button
Properties
Name | Type | Description |
---|---|---|
volumeButton | boolean | object |
if set to false, hides the volume button |
icon | object |
icon definitions |
icon.default | iconUrl |
default icon |
icon.muted | iconUrl |
the icon for muted mode |
order | integer |
order index within the button strip (default: 20) |
options.components.subtitlesButton : object
Subtitles Button
Properties
Name | Type | Description |
---|---|---|
subtitlesButton | boolean | object |
if set to false, hides the subtitles button |
icon | object |
icon definitions |
icon.enabled | iconUrl |
icon for when subtitles are disabled |
icon.disabled | iconUrl |
icon for when subtitles are enabled |
order | integer |
order index within the button strip (default: 10) |
options.components.customButtons : object
Custom Buttons
Properties
Name | Type | Description |
---|---|---|
customButtons | Array.<customButtonConfig> |
an array of customButtons |
Example
{
id: "myCustomButton1",
icon: "url_to_file.svg",
location: "topRight", // false means it isn’t displayed
order: 40,
},
{
id: "myCustomButton2",
icon: "url_to_file.svg",
location: "bottomRight",
order: 35
}
options.theme : object
Theme
Properties
Name | Type | Description |
---|---|---|
theme | object |
configuration for the platform skin |
theme.highlightColor | string |
a CSS value for a highlight color |
theme.font | object |
an object describing platform fonts |
theme.font.title | string |
the name of a font family from Google Fonts to be used for titles |
theme.font.paragraph | string |
the name of a font family from Google Fonts to be used for runing text |
Example
{
"highlightColor": "rgb(255,0,0,0.9)",
"font": {
"title": "Roboto",
"paragraph": "Open Sans"
}
}
options.components.transport : object
Transport controls (checkpoints, skip)
Default: {
checkpointsEnabled: true,
checkpointsEnabledOnMobile: true,
skipForward: false,
skipBackward: false
}
Example
"components": {
"transport":{
"checkpointsEnabled": false
}
}
options.components.ticker : object
Ticker messages
Default: {
checkpointSaved: true,
buffering: true,
skipping: true,
}
Example
"components": {
"ticker":{
"checkpointSaved": false,
"buffering": true,
"skipping": true,
}
}
options.components.watermark : boolean
Watermark
Default: true
Example
"components": {
"watermark": true
}
options.components.logoButton : object
Logo Button
Default: {
color: '#33ffcc',
url: null,
linkout: false
}
Example
"components": {
"logoButton": {
"url": "https://eko.com"
"linkout": true
}
}
options.components.shareButton : boolean
Share Button
Default: true
Properties
Name | Type | Description |
---|---|---|
shareButton | boolean | object |
if set to false, hides the share button |
icon | object |
icon definitions |
icon.default | iconUrl |
default share icon. |
icon.os | iconUrl |
icon to be displayed on iOS devices. |
order | integer |
order index within the button strip (default: 10) |
Example
// to disabled
"components": {
"shareButton": false
}
options.components.share : array
Share Buttons ( will be replaced by the shared url)
Default: [
{
platform: 'facebook',
url: 'https://www.facebook.com/sharer/sharer.php?u='
},
{
platform: 'twitter',
url: 'https://twitter.com/intent/tweet?text=&related=ekovideo'
}
]
options.components.copyLinkButton : boolean
Copy Link Button
Default: true
Example
"components": {
"copyLinkButton": true
}
options.components.endScreen : object
End Screen Overlay
Default: {
shouldShow: true,
linkout: false,
shouldNavigateToNextVideo: true
}
Example
"components": {
"endScreen": {
"shouldShow": false,
"shouldNavigateToNextVideo": false
}
}
options.components.pauseScreen : object
Pause Screen Overlay
Default: {
title: true,
subTitle: true,
startOver: true,
watchTime: true,
}
Properties
Name | Type | Description |
---|---|---|
title | boolean |
show the project title |
subtitle | boolean |
show the the project title |
startOver | boolean |
show the “start over” button’ |
watchTime | boolean |
show the “time to watch” caption |
background | string |
a CSS definition for the pause screen background. |
Example
"components": {
"pauseScreen": {
"subTitle": false,
"background": "url(path/to/img.png), linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(255,0,0,1) 100%) 100% 100% no-repeat, #002266"
}
}
options.components.bufferingScreen : object
Buffering Screen Overlay
Properties
Name | Type | Description |
---|---|---|
backButton | boolean |
show the back button |
title | boolean |
show the project title |
options.components.backButton : object
backButton
Default: {
title: '',
pageUrl: null,
linkout: false,
isStandAlone: true
}
Example
"components": {
"backButton": {
"title": "Explore Stories",
}
}
options.components.feedback : boolean
Feedback
Default: true
Example
"components": {
"feedback": false
}
options.eovNextTimer : number
Timer Duration for playing next video after reaching the End Of Video experience
Default: 10
Example
"eovNextTimer": 15
options.skipEOV : boolean
Skip End Of Video experience
Default: false
Example
"skipEOV": true
options.projectInfo : object
Project Info - project title and the estimated watch time
Default: {
title: '',
watchTime: 0
}
Example
"projectInfo": {
"title": "My Project Name"
"watchTime": 7
}
options.appUrl : object
App URL - when linking to app store
Default: {
iOS: ''
}
Example
"appUrl": {
"iOS": "https://appstore.url"
}
options.env : object
What Environment is the project playing
Default: {
isEmbed: false,
isPreview: false
}
Example
"env": {
"isEmbed": true
}
options.rotationHint : object
Rotate Your Screen Hint
Default: {
showRotationHint: true,
hideRotationHintTimer: 0
}
Example
"rotationHint": {
"hideRotationHintTimer": 10
}
options.muteMessage : object
If player is audio locked (browser limitations) should we show the Mute Message
Default: {
showMuteMessage: true,
muteMessageTimer: 0
}
Example
"muteMessage": {
"showMuteMessage": true,
"muteMessageTimer": 15
}
options.ringerMessage : object
If in iOS should we show the Ringer Message, won’t show if muteMessage is disabled
Default: {
showRingerMessage: true,
ringerMessageTimer: 6
}
Example
"ringerMessage": {
"showRingerMessage": false
}
options.enableOnboarding : boolean
Enables ekoshell onboarding (When enabled, controls are expanded at project start and collapse after a timeout)
Default: true
Example
(disabling onboarding)
"enableOnboarding": false
Methods
setLocation : string
Changes a button’s location or hides it
Param | Type | Description |
---|---|---|
buttonId | string |
the button id. Could be “fullscreen”, “volume”, “share”, “subtitles” or the id of a custom button specified in the customButtons array |
location | string | bool |
one of the following: “bottomRight”, “topRight”, false |
Example
// show 'myCustomButton1' in the topRight buttonStrip
ekoshell.setLocation('myCustomButton1', 'topRight');
Example
// hide 'myCustomButton1'
ekoshell.setLocation('myCustomButton1', false);
Definitions
iconUrl : object
A url to an svg file containing the icon. Icons in the button strip should have a viewbox of 27x27 and a size of 27x27
customButtonConfig : object
A configuration of a custom button in a buttonStrip
Properties
Name | Type | Description |
---|---|---|
customButtonConfig.id | string |
a unique id for the button |
customButtonConfig.label | string |
a textual description of the button (required) |
customButtonConfig.icon | iconUrl |
the icon for the button |
customButtonConfig.location | string |
can be either “topRight”, “bottomRight” or false (doesn’t appear) |
customButtonConfig.order | integer |
order index within the button strip |