@UnstableApi
class PlayerEmsgHandler : Handler.Callback


Handles all emsg messages from all media tracks for the player.

This class will only respond to emsg messages which have schemeIdUri "urn:mpeg:dash:event:2012", and value "1"/"2"/"3". When it encounters one of these messages, it will handle the message according to Section 4.5.2.1 DASH -IF IOP Version 4.1:

  • If both presentation time delta and event duration are zero, it means the media presentation has ended.
  • Else, it will parse the message data from the emsg message to find the publishTime of the expired manifest, and mark manifest with publishTime smaller than that values to be expired.
In both cases, the DASH media source will be notified, and a manifest reload should be triggered.

Summary

Nested types

Callbacks for player emsg events encountered during DASH live stream.

Handles emsg messages for a specific track for the player.

Public constructors

PlayerEmsgHandler(
    manifest: DashManifest!,
    playerEmsgCallback: PlayerEmsgHandler.PlayerEmsgCallback!,
    allocator: Allocator!
)

Public functions

Boolean
PlayerEmsgHandler.PlayerTrackEmsgHandler!

Returns a TrackOutput that emsg messages could be written to.

Unit

Release this emsg handler.

Unit

Updates the DashManifest that this handler works on.

Public constructors

PlayerEmsgHandler

PlayerEmsgHandler(
    manifest: DashManifest!,
    playerEmsgCallback: PlayerEmsgHandler.PlayerEmsgCallback!,
    allocator: Allocator!
)
Parameters
manifest: DashManifest!

The initial manifest.

playerEmsgCallback: PlayerEmsgHandler.PlayerEmsgCallback!

The callback that this event handler can invoke when handling emsg messages that generate DASH media source events.

allocator: Allocator!

An Allocator from which allocations can be obtained.

Public functions

handleMessage

fun handleMessage(message: Message!): Boolean

newPlayerTrackEmsgHandler

fun newPlayerTrackEmsgHandler(): PlayerEmsgHandler.PlayerTrackEmsgHandler!

Returns a TrackOutput that emsg messages could be written to.

release

fun release(): Unit

Release this emsg handler. It should not be reused after this call.

updateManifest

fun updateManifest(newManifest: DashManifest!): Unit

Updates the DashManifest that this handler works on.

Parameters
newManifest: DashManifest!

The updated manifest.