Parses media manifests and handles manifest updates.
Given a URI where the initial manifest is found, a parser will request the
manifest, parse it, and return the resulting Manifest object.
If the manifest requires updates (e.g. for live media), the parser will use
background timers to update the same Manifest object.
There are many ways for |start| and |stop| to be called. Implementations
should support all cases:
BASIC
await parser.start(uri, playerInterface);
await parser.stop();
INTERRUPTING
const p = parser.start(uri, playerInterface);
await parser.stop();
await p;
|p| should be rejected with an OPERATION_ABORTED error.
STOPPED BEFORE STARTING
await parser.stop();
- Implementations:
- Source:
Methods
(export) configure(config)
Called by the Player to provide an updated configuration any time the
configuration changes. Will be called at least once before start().
Parameters:
Name | Type | Description |
---|---|---|
config |
shaka.extern.ManifestConfiguration |
- Source:
(export) onExpirationUpdated(sessionId, expiration)
Tells the parser that the expiration time of an EME session has changed.
Implementing this is optional.
Parameters:
Name | Type | Description |
---|---|---|
sessionId |
string | |
expiration |
number |
- Source:
(export) start(uri, playerInterface) → (non-null) {Promise.<shaka.extern.Manifest>}
Initialize and start the parser. When |start| resolves, it should return the
initial version of the manifest. |start| will only be called once. If |stop|
is called while |start| is pending, |start| should reject.
Parameters:
Name | Type | Description |
---|---|---|
uri |
string | The URI of the manifest. |
playerInterface |
shaka.extern.ManifestParser.PlayerInterface | The player interface contains the callbacks and members that the parser can use to communicate with the player and outside world. |
- Source:
Returns:
- Type
- Promise.<shaka.extern.Manifest>
(export) stop() → (non-null) {Promise}
Tell the parser that it must stop and free all internal resources as soon as
possible. Only once all internal resources are stopped and freed will the
promise resolve. Once stopped a parser will not be started again.
The parser should support having |stop| called multiple times and the promise
should always resolve.
- Source:
Returns:
- Type
- Promise
(export) update()
Tells the parser to do a manual manifest update. Implementing this is
optional. This is only called when 'emsg' boxes are present.
- Source:
Type Definitions
Factory
A factory for creating the manifest parser. This will be called with 'new'.
This function is registered with shaka.media.ManifestParser to create parser
instances.
Type:
- function(new:shaka.extern.ManifestParser)
- Source:
PlayerInterface
Defines the interface of the Player to the manifest parser. This defines
fields and callback methods that the parser will use to interact with the
Player. The callback methods do not need to be called as member functions
(i.e. they can be called as "free" functions).
Type:
- {networkingEngine: !shaka.net.NetworkingEngine, filterNewPeriod: function(shaka.extern.Period), filterAllPeriods: function(!Array.<!shaka.extern.Period>), onTimelineRegionAdded: function(shaka.extern.TimelineRegionInfo), onEvent: function(!Event), onError: function(!shaka.util.Error)}
Properties:
Name | Type | Description |
---|---|---|
networkingEngine |
shaka.net.NetworkingEngine | The networking engine to use for network requests. |
filterNewPeriod |
function | Should be called on a new Period so that it can be filtered. |
filterAllPeriods |
function | Should be called on all Periods so that they can be filtered. |
onTimelineRegionAdded |
function | Should be called when a new timeline region is added. |
onEvent |
function | Should be called to raise events. |
onError |
function | Should be called when an error occurs. |
- Source: