The MediaPlayer is the primary dash.js Module and a Facade to build your player around.
It will allow you access to all the important dash.js properties/methods via the public API and all the
events to build a robust DASH media player.
- Source
Members
(inner, constant) ELEMENT_NOT_ATTACHED_ERROR :string
error string thrown when a function is called before the dash.js has received a reference of an HTML5 video element
- string
- Source
(inner, constant) MEDIA_PLAYER_NOT_INITIALIZED_ERROR :string
error string thrown when a function is called before the dash.js has been fully initialized.
- string
- Source
(inner, constant) PLAYBACK_NOT_INITIALIZED_ERROR :string
error string thrown when a function is called before the dash.js has been fully initialized
- string
- Source
(inner, constant) SOURCE_NOT_ATTACHED_ERROR :string
error string thrown when a function is called before the dash.js has received a valid source stream.
- string
- Source
(inner, constant) STREAMING_NOT_INITIALIZED_ERROR :string
error string thrown when a function is called before the dash.js has been fully initialized
- string
- Source
Methods
addABRCustomRule(type, rulename, rule)
Add a custom ABR Rule
Rule will be apply on next stream if a stream is being played
Name | Type | Description |
---|---|---|
type | string | rule type (one of ['qualitySwitchRules','abandonFragmentRules']) |
rulename | string | name of rule (used to identify custom rule). If one rule of same name has been added, then existing rule will be updated |
rule | object | the rule object instance |
BAD_ARGUMENT_ERROR
if called with invalid arguments.
addUTCTimingSource(schemeIdUri, value)
Allows you to set a scheme and server source for UTC live edge detection for dynamic streams. If UTCTiming is defined in the manifest, it will take precedence over any time source manually added.
If you have exposed the Date header, use the method clearDefaultUTCTimingSources()
. This will allow the date header on the manifest to be used instead of a time server
Name | Type | Description |
---|---|---|
schemeIdUri | string |
Some specs referencing early ISO23009-1 drafts incorrectly use 2012 in the URI, rather than 2014. support these for now.
|
value | string | Path to a time source. |
- Default Value
- schemeIdUri:urn:mpeg:dash:utc:http-xsdate:2014
- value:http://time.akamai.com/?iso&ms/li>
attachProtectionController(value)
Will override dash.js protection controller.
Name | Type | Description |
---|---|---|
value | ProtectionController | valid protection controller instance. |
attachSource(urlOrManifest, startTime)
Use this method to set a source URL to a valid MPD manifest file OR
a previously downloaded and parsed manifest object. Optionally, can
also provide protection information
Name | Type | Description |
---|---|---|
urlOrManifest | string | | A URL to a valid MPD manifest file, or a |
startTime | number | | For VoD content the start time is relative to the start time of the first period. |
MEDIA_PLAYER_NOT_INITIALIZED_ERROR
if called before initialize function
attachTTMLRenderingDiv(div)
Use this method to attach an HTML5 div for dash.js to render rich TTML subtitles.
Name | Type | Description |
---|---|---|
div | HTMLDivElement | An unstyled div placed after the video element. It will be styled to match the video size and overlay z-order. |
ELEMENT_NOT_ATTACHED_ERROR
if called before attachView function
attachView(element)
Use this method to attach an HTML5 VideoElement for dash.js to operate upon.
Name | Type | Description |
---|---|---|
element | Object | An HTMLMediaElement that has already been defined in the DOM (or equivalent stub). |
MEDIA_PLAYER_NOT_INITIALIZED_ERROR
if called before initialize function
clearDefaultUTCTimingSources()
Allows you to clear the stored array of time sources.
Example use: If you have exposed the Date header, calling this method will allow the date header on the manifest to be used instead of the time server.
Example use: Calling this method, assuming there is not an exposed date header on the manifest, will default back to using a binary search to discover the live edge
convertToTimeCode(value) → {string}
A utility method which converts seconds into TimeCode (i.e. 300 --> 05:00).
Name | Type | Description |
---|---|---|
value | number | A number in seconds to be converted into a formatted time code. |
A formatted time code string.
- Type:
- string
destroy()
Completely destroys the media player and frees all memory.
- Source
duration() → {number}
Duration of the media's playback, in seconds.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
The current duration of the media. For a dynamic stream this will return DVRWindow.end - DVRWindow.start
- Type:
- number
durationAsUTC() → {number}
Use this method to get the current duration as an absolute value, the time in seconds since midnight UTC, Jan 1 1970.
Note - this property only has meaning for live streams.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
The current duration as UTC timestamp.
- Type:
- number
enableForcedTextStreaming(enable)
Enable/disable text
When enabling dash will keep downloading and process fragmented text tracks even if all tracks are in mode "hidden"
Name | Type | Description |
---|---|---|
enable | boolean | true to enable text streaming even if all text tracks are hidden. |
enableText(enable)
Enable/disable text
When enabling text, dash will choose the previous selected text track
Name | Type | Description |
---|---|---|
enable | boolean | true to enable text, false otherwise (same as setTextTrack(-1)) |
extend(parentNameString, childInstance, override)
This method should be used to extend or replace internal dash.js objects.
There are two ways to extend dash.js (determined by the override argument):
- If you set override to true any public method or property in your custom object will override the dash.js parent object's property(ies) and will be used instead but the dash.js parent module will still be created.
- If you set override to false your object will completely replace the dash.js object. (Note: This is how it was in 1.x of Dash.js with Dijon).
- this.context - can be used to pass context for singleton access.
- this.factory - can be used to call factory.getSingletonInstance().
- this.parent - is the reference of the parent object to call other public methods. (this.parent is excluded if you extend with override set to false or option 2)
Name | Type | Description |
---|---|---|
parentNameString | string | name of parent module |
childInstance | Object | overriding object |
override | boolean | replace only some methods (true) or the whole object (false) |
- See
formatUTC(time, locales, hour12, withDate) → {string}
A utility methods which converts UTC timestamp value into a valid time and date string.
Name | Type | Default | Description |
---|---|---|---|
time | number | UTC timestamp to be converted into date and time. | |
locales | string | a region identifier (i.e. en_US). | |
hour12 | boolean | 12 vs 24 hour. Set to true for 12 hour time formatting. | |
withDate | boolean | false | default is false. Set to true to append current date to UTC time format. |
A formatted time and date string.
- Type:
- string
getActiveStream()
This method returns the active stream
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
getAutoPlay() → {boolean}
The current autoPlay state.
- Type:
- boolean
getAverageThroughput(type) → {number}
Returns the average throughput computed in the ABR logic
Name | Type | Description |
---|---|---|
type | MediaType |
value
- Type:
- number
getBitrateInfoListFor(type) → {Array}
Name | Type | Description |
---|---|---|
type | MediaType |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
- Type:
- Array
getBufferLength(type) → {number}
The length of the buffer for a given media type, in seconds. Valid media
types are "video", "audio" and "text". If no type is passed
in, then the minimum of video, audio and text buffer length is
returned. NaN is returned if an invalid type is requested, the
presentation does not contain that type, or if no arguments are passed
and the presentation does not include any adaption sets of valid media
type.
Name | Type | Description |
---|---|---|
type | MediaType | 'video', 'audio' or 'text' |
- Source
The length of the buffer for the given media type, in
seconds, or NaN
- Type:
- number
getCurrentLiveLatency() → {number|NaN}
MEDIA_PLAYER_NOT_INITIALIZED_ERROR
if called before initialize function
Current live stream latency in seconds. It is the difference between now time and time position at the playback head.
- Type:
- number |
NaN
getCurrentTrackFor(type) → {Object|null}
Name | Type | Description |
---|---|---|
type | MediaType |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
MediaInfo
- Type:
- Object |
null
getDashAdapter() → {Object}
Returns the DashAdapter.js Module.
- Type:
- Object
getDashMetrics() → {Object}
Returns the DashMetrics.js Module. You use this Module to get access to all the public metrics
stored in dash.js
- Type:
- Object
getDebug() → {Debug}
Use this method to access the dash.js logging class.
- Source
- Type:
- Debug
getDVRSeekOffset(value) → {number}
This method should only be used with a live stream that has a valid timeShiftBufferLength (DVR Window).
NOTE - If you do not need the raw offset value (i.e. media analytics, tracking, etc) consider using the seek()
method
which will calculate this value for you and set the video element's currentTime property all in one simple call.
Name | Type | Description |
---|---|---|
value | number | A relative time, in seconds, based on the return value of the |
- Source
- See
A value that is relative the available range within the timeShiftBufferLength (DVR Window).
- Type:
- number
getDVRWindowSize() → {number}
The timeShiftBufferLength (DVR Window), in seconds.
- Source
The window of allowable play time behind the live point of a live stream as defined in the manifest.
- Type:
- number
getInitialMediaSettingsFor(type) → {Object}
This method returns media settings that is used to pick the initial track. Format of the settings
is following:
{lang: langValue,
index: indexValue,
viewpoint: viewpointValue,
audioChannelConfiguration: audioChannelConfigurationValue,
accessibility: accessibilityValue,
role: roleValue}
Name | Type | Description |
---|---|---|
type | MediaType |
MEDIA_PLAYER_NOT_INITIALIZED_ERROR
if called before initialize function
- Type:
- Object
getLowLatencyModeEnabled() → {boolean}
Returns a boolean that indicates whether the player is operating in low latency mode.
- Source
- Type:
- boolean
getOfflineController()
Detects if Offline is included and returns an instance of OfflineController.js
getPlaybackRate() → {number}
Returns the current playback rate.
- Source
- Type:
- number
getProtectionController()
Detects if Protection is included and returns an instance of ProtectionController.js
getQualityFor(type) → {number}
Gets the current download quality for media type video, audio or images. For video and audio types the ABR
rules update this value before every new download unless autoSwitchBitrate is set to false. For 'image'
type, thumbnails, there is no ABR algorithm and quality is set manually.
Name | Type | Description |
---|---|---|
type | MediaType | 'video', 'audio' or 'image' (thumbnails) |
- Source
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
the quality index, 0 corresponding to the lowest bitrate
- Type:
- number
getSettings() → {PlayerSettings}
Get the current settings object being used on the player.
The settings object being used.
- Type:
- PlayerSettings
getSource() → {string|manifest}
Returns the source string or manifest that was attached by calling attachSource()
SOURCE_NOT_ATTACHED_ERROR
if called before attachSource function
- Type:
- string |
manifest
getStreamsFromManifest(manifest) → {Array}
This method returns the list of all available streams from a given manifest
Name | Type | Description |
---|---|---|
manifest | Object |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
list of StreamInfo
- Type:
- Array
getTargetLiveDelay() → {number}
Returns the target live delay
- Source
The target live delay
- Type:
- number
getTopBitrateInfoFor(type) → {BitrateInfo|null}
Gets the top quality BitrateInfo checking portal limit and max allowed.
It calls getMaxAllowedIndexFor internally
Name | Type | Description |
---|---|---|
type | MediaType | 'video' or 'audio' |
- Source
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
- Type:
- BitrateInfo |
null
getTracksFor(type) → {Array}
This method returns the list of all available tracks for a given media type
Name | Type | Description |
---|---|---|
type | MediaType |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
list of MediaInfo
- Type:
- Array
getTracksForTypeFromManifest(type, manifest, streamInfo) → {Array}
This method returns the list of all available tracks for a given media type and streamInfo from a given manifest
Name | Type | Description |
---|---|---|
type | MediaType | |
manifest | Object | |
streamInfo | Object |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
list of MediaInfo
- Type:
- Array
getTTMLRenderingDiv() → {Object}
Returns instance of Div that was attached by calling attachTTMLRenderingDiv()
- Type:
- Object
getVersion() → {string}
Current version of Dash.js
- Source
the current dash.js version string.
- Type:
- string
getVideoElement() → {Object}
Returns instance of Video Element that was attached by calling attachView()
ELEMENT_NOT_ATTACHED_ERROR
if called before attachView function
- Type:
- Object
getVolume() → {number}
Returns the current audio volume, from 0.0 (silent) to 1.0 (loudest).
- Source
- Type:
- number
getXHRWithCredentialsForType(type) → {boolean}
Gets whether withCredentials on XHR requests for a particular request
type is true or false
Name | Type | Description |
---|---|---|
type | string | one of HTTPRequest.*_TYPE |
- Type:
- boolean
initialize(viewopt, sourceopt, autoPlayopt, startTime)
Upon creating the MediaPlayer you must call initialize before you call anything else.
There is one exception to this rule. It is crucial to call extend()
with all your extensions prior to calling initialize.
ALL arguments are optional and there are individual methods to set each argument later on.
The args in this method are just for convenience and should only be used for a simple player setup.
Name | Type | Attributes | Description |
---|---|---|---|
view | HTML5MediaElement | <optional> | Optional arg to set the video element. |
source | string | <optional> | Optional arg to set the media source. |
autoPlay | boolean | <optional> | Optional arg to set auto play. |
startTime | number | | For VoD content the start time is relative to the start time of the first period. |
- Source
isDynamic() → {boolean}
Returns a Boolean that indicates whether the media is in the process of dynamic.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
- Type:
- boolean
isMuted() → {boolean}
A Boolean that determines whether audio is muted.
- Source
- Type:
- boolean
isPaused() → {boolean}
Returns a Boolean that indicates whether the Video Element is paused.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
- Type:
- boolean
isReady() → {boolean}
The ready state of the MediaPlayer based on both the video element and MPD source being defined.
- Source
The current ready state of the MediaPlayer
- Type:
- boolean
isSeeking() → {boolean}
Returns a Boolean that indicates whether the media is in the process of seeking to a new position.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
- Type:
- boolean
isTextEnabled() → {boolean}
Return if text is enabled
return true if text is enabled, false otherwise
- Type:
- boolean
off(type, listener, scope)
Use the off method to remove listeners for public events found in MediaPlayer.events. MediaPlayerEvents
Name | Type | Description |
---|---|---|
type | string | |
listener | function | callback method when the event fires. |
scope | Object | context of the listener so it can be removed properly. |
- Source
on(type, listener, scope, options)
Use the on method to listen for public events found in MediaPlayer.events. MediaPlayerEvents
Name | Type | Description |
---|---|---|
type | string | |
listener | function | callback method when the event fires. |
scope | Object | context of the listener so it can be removed properly. |
options | Object | object to define various options such as priority and mode |
- Source
pause()
This method will call pause on the native Video Element.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
play()
The play method initiates playback of the media defined by the attachSource()
method.
This method will call play on the native Video Element.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
preload()
Causes the player to begin streaming the media as set by the attachSource()
method in preparation for playing. It specifically does not require a view to be attached with attachView()
to begin preloading.
When a view is attached after preloading, the buffered data is transferred to the attached mediaSource buffers.
- Source
SOURCE_NOT_ATTACHED_ERROR
if called before attachSource function
provideThumbnail(time, callback)
Provide the thumbnail at time position. This can be asynchronous, so you must provide a callback ro retrieve thumbnails informations
Name | Type | Description |
---|---|---|
time | number | A relative time, in seconds, based on the return value of the |
callback | function | A Callback function provided when retrieving thumbnail the given time position. Thumbnail object is null in case there are is not a thumbnails representation or |
refreshManifest(callback)
Reload the manifest that the player is currently using.
Name | Type | Description |
---|---|---|
callback | function | A Callback function provided when retrieving manifests |
registerCustomCapabilitiesFilter(filter)
Registers a custom capabilities filter. This enables application to filter representations to use.
The provided callback function shall return a boolean based on whether or not to use the representation.
The filters are applied in the order they are registered.
Name | Type | Description |
---|---|---|
filter | function | the custom capabilities filter callback |
registerLicenseRequestFilter(filter)
Registers a license request filter. This enables application to manipulate/overwrite any request parameter and/or request data.
The provided callback function shall return a promise that shall be resolved once the filter process is completed.
The filters are applied in the order they are registered.
Name | Type | Description |
---|---|---|
filter | function | the license request filter callback |
registerLicenseResponseFilter(filter)
Registers a license response filter. This enables application to manipulate/overwrite the response data
The provided callback function shall return a promise that shall be resolved once the filter process is completed.
The filters are applied in the order they are registered.
Name | Type | Description |
---|---|---|
filter | function | the license response filter callback |
removeABRCustomRule(rulename)
Remove a custom ABR Rule
Name | Type | Description |
---|---|---|
rulename | string | name of the rule to be removed |
removeAllABRCustomRule()
Remove all ABR custom rules
removeUTCTimingSource(schemeIdUri, value)
Allows you to remove a UTC time source. Both schemeIdUri and value need to match the Dash.vo.UTCTiming properties in order for the entry to be removed from the array
Name | Type | Description |
---|---|---|
schemeIdUri | string | |
value | string |
BAD_ARGUMENT_ERROR
if called with invalid arguments, schemeIdUri and value are not string type.
reset()
Sets the MPD source and the video element to null. You can also reset the MediaPlayer by
calling attachSource with a new source file.
This call does not destroy the MediaPlayer. To destroy the MediaPlayer and free all of its
memory, call destroy().
- Source
resetSettings()
Resets the settings object back to the default.
restoreDefaultUTCTimingSources()
Allows you to restore the default time sources after calling clearDefaultUTCTimingSources()
- Default Value
- schemeIdUri:urn:mpeg:dash:utc:http-xsdate:2014
- value:http://time.akamai.com/?iso&ms
retrieveManifest(url, callback)
Allows application to retrieve a manifest. Manifest loading is asynchronous and requires the app-provided callback function
Name | Type | Description |
---|---|---|
url | string | url the manifest url |
callback | function | A Callback function provided when retrieving manifests |
seek(value)
Sets the currentTime property of the attached video element. If it is a live stream with a
timeShiftBufferLength, then the DVR window offset will be automatically calculated.
Name | Type | Description |
---|---|---|
value | number | A relative time, in seconds, based on the return value of the |
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback functionBAD_ARGUMENT_ERROR
if called with an invalid argument, not number type or is NaN.
setAutoPlay(value)
Set to false to prevent stream from auto-playing when the view is attached.
Name | Type | Description |
---|---|---|
value | boolean |
- Default Value
- true
- See
BAD_ARGUMENT_ERROR
if called with an invalid argument, not boolean type.
setConfig(configopt)
Configure media player with customs controllers. Helpful for tests
Name | Type | Attributes | Description |
---|---|---|---|
config | object | <optional> | controllers configuration |
- Source
setCurrentTrack(track, noSettingsSaveopt)
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
track | MediaInfo | instance of | ||
noSettingsSave | boolean | <optional> | false | specify if settings from the track must not be saved for incoming track selection |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
setInitialMediaSettingsFor(type, value)
This method allows to set media settings that will be used to pick the initial track. Format of the settings
is following:
{lang: langValue (can be either a string primitive, a string object, or a RegExp object to match),
index: indexValue,
viewpoint: viewpointValue,
audioChannelConfiguration: audioChannelConfigurationValue,
accessibility: accessibilityValue,
role: roleValue}
Name | Type | Description |
---|---|---|
type | MediaType | |
value | Object |
MEDIA_PLAYER_NOT_INITIALIZED_ERROR
if called before initialize function
setMute(value)
Use this method to set the native Video Element's muted state. Takes a Boolean that determines whether audio is muted. true if the audio is muted and false otherwise.
Name | Type | Description |
---|---|---|
value | boolean |
- Source
BAD_ARGUMENT_ERROR
if called with an invalid argument, not boolean type.
setPlaybackRate(value)
Use this method to set the native Video Element's playback rate.
Name | Type | Description |
---|---|---|
value | number |
- Source
setProtectionData(value)
Sets Protection Data required to setup the Protection Module (DRM). Protection Data must
be set before initializing MediaPlayer or, once initialized, before PROTECTION_CREATED event is fired.
Name | Type | Description |
---|---|---|
value | ProtectionDataSet | object containing |
setQualityFor(type, value, forceReplace)
Sets the current quality for media type instead of letting the ABR Heuristics automatically selecting it.
This value will be overwritten by the ABR rules unless autoSwitchBitrate is set to false.
Name | Type | Default | Description |
---|---|---|---|
type | MediaType | 'video', 'audio' or 'image' | |
value | number | the quality index, 0 corresponding to the lowest bitrate | |
forceReplace | boolean | false | true if segments have to be replaced by segments of the new quality |
STREAMING_NOT_INITIALIZED_ERROR
if called before initializePlayback function
setTextTrack(idx)
Use this method to change the current text track for both external time text files and fragmented text tracks. There is no need to
set the track mode on the video object to switch a track when using this method.
Name | Type | Description |
---|---|---|
idx | number | Index of track based on the order of the order the tracks are added Use -1 to disable all tracks. (turn captions off). Use module:MediaPlayer#dashjs.MediaPlayer.events.TEXT_TRACK_ADDED. |
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
setVolume(value)
A double indicating the audio volume, from 0.0 (silent) to 1.0 (loudest).
Name | Type | Description |
---|---|---|
value | number |
- Source
BAD_ARGUMENT_ERROR
if called with an invalid argument, not number type, or is NaN or not between 0 and 1.
setXHRWithCredentialsForType(type, value)
Sets whether withCredentials on XHR requests for a particular request
type is true or false
Name | Type | Description |
---|---|---|
type | string | one of HTTPRequest.*_TYPE |
value | boolean |
- Default Value
- false
time(streamId) → {number}
Current time of the playhead, in seconds.
If called with no arguments then the returned time value is time elapsed since the start point of the first stream, or if it is a live stream, then the time will be based on the return value of the duration()
method.
However if a stream ID is supplied then time is relative to the start of that stream, or is null if there is no such stream id in the manifest.
Name | Type | Description |
---|---|---|
streamId | string | The ID of a stream that the returned playhead time must be relative to the start of. If undefined, then playhead time is relative to the first stream. |
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
The current playhead time of the media, or null.
- Type:
- number
timeAsUTC() → {number}
Use this method to get the current playhead time as an absolute value, the time in seconds since midnight UTC, Jan 1 1970.
Note - this property only has meaning for live streams. If called before play() has begun, it will return a value of NaN.
- Source
PLAYBACK_NOT_INITIALIZED_ERROR
if called before initializePlayback function
The current playhead time as UTC timestamp.
- Type:
- number
unregisterCustomCapabilitiesFilter(filter)
Unregisters a custom capabilities filter.
Name | Type | Description |
---|---|---|
filter | function | the custom capabilities filter callback |
unregisterLicenseRequestFilter(filter)
Unregisters a license request filter.
Name | Type | Description |
---|---|---|
filter | function | the license request filter callback |
unregisterLicenseResponseFilter(filter)
Unregisters a license response filter.
Name | Type | Description |
---|---|---|
filter | function | the license response filter callback |
updatePortalSize()
Update the video element size variables
Should be called on window resize (or any other time player is resized). Fullscreen does trigger a window resize event.
Once windowResizeEventCalled = true, abrController.checkPortalSize() will use element size variables rather than querying clientWidth every time.
updateSettings(settingsObj)
Update the current settings object being used on the player. Anything left unspecified is not modified.
This function does not update the entire object, only properties in the passed in object are updated.
This means that updateSettings({a: x}) and updateSettings({b: y}) are functionally equivalent to
updateSettings({a: x, b: y}). If the default values are required again, @seeresetSettings
.
Name | Type | Description |
---|---|---|
settingsObj | PlayerSettings | An object corresponding to the settings definition. |
player.updateSettings({
streaming: {
lowLatencyEnabled: false,
abr: {
maxBitrate: { audio: 100, video: 1000 }
}
}
});