Skip to main content

Player Types Reference

LuraTrack


sealed class LuraTrack

LuraTracks

ParameterTypeDescription
videoList<LuraTrack.Video>Video tracks of current media
audioList<LuraTrack.Audio>Audio tracks of current media
captionList<LuraTrack.Text>Text tracks of current media
@Serializable
data class LuraTracks(
val video: List<LuraTrack.Video> = emptyList(),
val audio: List<LuraTrack.Audio> = emptyList(),
val caption: List<LuraTrack.Text> = emptyList()
)

LuraTrack.Video

ParameterTypeDescription
groupIndexIntIndex of track group
indexIntIndex of track
isAdaptiveSupportedBooleanIs video track support adaptive
idString?ID of track
widthInt?Width of video track
heightInt?Height of video track
bitrateInt?Bitrate of video track
languageString?Language of video track
frameRateFloatFrame rate of video track
activeBooleanIs video track selected
isCurrentBooleanIs current video track selected
@Serializable
data class Video(
val groupIndex: Int = -1,
val index: Int = -1,
val isAdaptiveSupported: Boolean = false,
val id: String? = null,
val width: Int? = null,
val height: Int? = null,
val bitrate: Int? = null,
val language: String? = "",
val frameRate: Float = 30.0f,
var active: Boolean = false
var isCurrent: Boolean = false
) : LuraTrack

LuraTrack.Audio

ParameterTypeDescription
groupIndexIntIndex of track group
indexIntIndex of track
isAdaptiveSupportedBooleanIs audio track support adaptive
idString?ID of track
bitrateInt?Bitrate of audio track
languageString?Language of audio track
channelsInt?Frame rate of audio track
activeBooleanIs audio track selected
@Serializable
data class Audio(
val groupIndex: Int = -1,
val index: Int = -1,
val isAdaptiveSupported: Boolean = false,
val id: String? = null,
val bitrate: Int? = null,
val language: String? = "",
val channels: Int? = null,
var active: Boolean = false
) : LuraTrack

LuraTrack.Text

ParameterTypeDescription
groupIndexIntIndex of track group
indexIntIndex of track
isAdaptiveSupportedBooleanIs text track support adaptive
idString?ID of track
languageString?Language of text track
activeBooleanIs text track selected
@Serializable
data class Text(
val groupIndex: Int = -1,
val index: Int = -1,
val id: String? = null,
val language: String? = "Off",
var active: Boolean = false
) : LuraTrack

LuraConfiguration

ParameterTypeDescription
nameString?Configuration name
luraLura?Credentials for lura backend
controlsLuraControlsConfigurationControls configuration
contentLuraContent?Content configuration
offlinePlaybackLuraOfflineConfiguration?Offline configuration
castLuraCastConfiguration?Cast configuration
adsLuraAdsConfiguration?Ads configuration
pluginsLuraPluginsConfigurations?Plugin Configurations
@Serializable
data class LuraConfiguration(
val name: String? = null,
val lura: Lura? = null,
val controls: LuraControlsConfiguration = LuraControlsConfiguration(),
val content: LuraContent? = null,
val offlinePlayback: LuraOfflineConfiguration? = null,
val cast: LuraCastConfiguration? = null,
val ads: LuraAdsConfiguration? = null,
val plugins: LuraPluginsConfigurations? = null
)

Lura

ParameterTypeDescription
appKeyStringLura configuration app key
assetIdStringLura asset id
tokenStringLura token
data class Lura(val appKey: String, val assetId: String)
// or
data class Lura(val token: String)

LuraControlsConfiguration

ParameterTypeDescription
autoplayBooleanIs autoplay enabled
enabledBooleanIs controls enabled
mutedBooleanIs muted
volumeDoubleVolume value
@Serializable
data class LuraControlsConfiguration(
val autoplay: Boolean = true,
val enabled: Boolean = true,
val muted: Boolean = true,
val volume: Double = 0.9
)

LuraContent

ParameterTypeDescription
mediaList<LuraMedia>List of medias for content
preferredDRMSystemsList<String>Preferred DRM sustems
idStringContent id
titleStringContent title
startAtDoubleContent starting point (in seconds)
descriptionString?Content description
languageString?Language
typeLuraVideoTypeVideo type
annotationsList<LuraAnnotation>Video type
@Serializable
data class LuraContent(
val media: List<LuraMedia> = emptyList(),
val preferredDRMSystems: List<String> = emptyList(),
val id: String = "",
val title: String = "",
val startAt: Double = 0.0,
val description: String? = null,
val language: String? = null,
val type: LuraVideoType? = null,
val annotations: List<LuraAnnotation>? = null,
)

LuraAnnotation

FieldTypeDescription
startnumberStarting time of the annotation
endnumberEnding time of the annotation
typestringType of the annotation (e.g. intro, outro)
labelstringLabel for the annotation
@Serializable
data class LuraAnnotation(
val start: Double = 0.0,
val end: Double = 0.0,
val type: String = "",
val label: String? = null,
)

LuraOfflineConfiguration

ParameterTypeDescription
resolutionLuraOfflineVideoResolutionResolution of video rendition
@Serializable
data class LuraOfflineConfiguration(
val resolution: LuraOfflineVideoResolution = LuraOfflineVideoResolution.HD,
)

LuraCastConfiguration

ParameterType
chromecastLuraChromecastConfiguration
@Serializable
data class LuraCastConfiguration(
val chromecast: LuraChromecastConfiguration = LuraChromecastConfiguration()
)

LuraChromecastConfiguration

ParameterTypeDescription
enabledBooleanList of medias for content
@Serializable
data class LuraChromecastConfiguration(val enabled: Boolean = false)

LuraAdsConfiguration

ParameterTypeDescription
macrosMap<String, Any?>?Macros
clientSideLuraClientSideConfiguration?Client-side configurations
serverSideLuraServerSideConfiguration?Server-side configurations
@Serializable
data class LuraAdsConfiguration(
val macros: Map<String, Any?>? = null,
val clientSide: LuraClientSideConfiguration? = null,
val serverSide: LuraServerSideConfiguration? = null
)

LuraPluginsConfigurations

ParameterTypeDescription
adobeMediaAnalyticsAdobeMediaAnalyticsConfiguration?Adobe Media Analytics configuration
comscoreComscoreConfiguration?Comscore configuration
convivaConvivaConfiguration?Conviva configuration
nielsenNielsenConfiguration?Nielsen configuration
openMeasurementOpenMeasurementConfiguration?Open Measurement configuration
palPalConfiguration?PAL configuration
@Serializable
data class LuraPluginsConfigurations(
val adobeMediaAnalytics: AdobeMediaAnalyticsConfiguration? = null,
val comscore: ComscoreConfiguration? = null,
val conviva: ConvivaConfiguration? = null,
val nielsen: NielsenConfiguration? = null,
val openMeasurement: OpenMeasurementConfiguration? = null,
val pal: PalConfiguration? = null
)

LuraVideoType

ParameterType
typeString
@Serializable(with = LuraVideTypeSerializer::class)
enum class LuraVideoType(val type: String) {
LIVE("LIVE"),
VOD("VOD"),
LINEAR("LINEAR"),
NONE("NONE");
}

LuraMediaFormat

ParameterType
formatString
@Serializable(with = LuraMediaFormatsSerializer::class)
enum class LuraMediaFormat(val format: String) {
DASH("dash"),
M3U8_VARIANT("m3u8-variant"),
MP4("mp4"),
NONE("");
}

LuraTrickPlayInformation

ParameterTypeDescription
widthIntWidth of trick play
heightIntHeight of trick play
@Serializable
data class LuraTrickPlayInformation(val width: Int, val height: Int)

LuraAdBreak

ParameterTypeDescription
idStringAn identifier for the Ad Break
offsetDoubleStart time of the ad in seconds.
adsList<LuraAd>Ads of the ad break
watchedBooleanA parameter representing whether the ad break is watched or not.
totalAdsIntCount of the ads in the ad break.
breakDurationDoubleDuration of the ad break.
@Serializable
open class LuraAdBreak(
val id: String = System.currentTimeMillis().toString(),
val offset: Double,
val ads: List<LuraAd> = emptyList(),
val watched: Boolean = false,
val totalAds: Int,
val breakDuration: Double,
)

LuraAd

ParameterTypeDescription
durationDoubleDuration of the ad in seconds.
skipOffsetDoubleSkip offset of the ad in seconds.
titleString?Title of the ad.
descriptionString?Description of the ad.
companionsList<LuraAdCompanion>?Data for the companion ads.
iconList<LuraAdIcon>?Data for the ad icons.
interactiveFilesList<LuraInteractiveFile>?Interactive creative files.
isClickableBooleanIs Ad has ClickThrough url.
@Serializable
open class LuraAd(
open var duration: Double = 0.0,
open var skipOffset: Double = 0.0,
open val title: String? = null,
open val description: String? = null,
open val companions: List<LuraAdCompanion>? = null,
open val icon: List<LuraAdIcon>? = null,
open val interactiveFiles: List<LuraInteractiveFile>? = null,
open val isClickable: Boolean = false,
)

LuraAdCompanion

ParameterTypeDescription
idString?An optional identifier for the creative.
apiFrameworkString?The API necessary to communicate with the creative if available.
widthString?The pixel width of the placement slot for which the creative is intended.
heightString?The pixel height of the placement slot for which the creative is intended.
assetWidthString?The pixel width of the creative.
assetHeightString?The pixel height of the creative.
expandedWidthString?The maximum pixel width of the creative in its expanded state.
expandedHeightString?The maximum pixel height of the creative in its expanded state.
adSlotIdString?Used to identify desiredplacement on a publisher’spage. Values to be used should be discussed between publishers and advertisers
pxratioString?The pixel ratio for which the companion creative is intended. The pixel ratio is the ratio of physical pixels on the device to the device-independent pixels. An ad intended for display on a device with a pixel ratio that is twice that of a standard 1:1 pixel ratio would use the value "2." Default value is "1."
renderingModeString?Used to indicate when and where to use this companion ad. Values can be “default” or “end-card” or “concurrent”. If this field is empty or not given, “default” will be used.
altTextString?A string to describe the creative when an ad viewer mouses over the ad.
clickThroughString?A URI to the advertiser’s page that should open when the viewer clicks the companion ad.
clickTrackingList<String>?A URI to a tracking resource file used to track a companion clickthrough
typeString?Resource type of the creative
creativeTypeString?Mime type of the creative
dataString?Data of the creative, URL for static and iframe resources, html code snippet for html resource. Check the type field for the resource type
trackingList<LuraAdCompanionTracking>?racking events of the companion
@Serializable
data class LuraAdCompanion(
val id: String? = null,
val apiFramework: String? = null,
val width: String? = null,
val height: String? = null,
val assetWidth: String? = null,
val assetHeight: String? = null,
val expandedWidth: String? = null,
val expandedHeight: String? = null,
val adSlotId: String? = null,
val pxratio: String? = null,
val renderingMode: String? = null,
val altText: String? = null,
val clickThrough: String? = null,
val clickTracking: List<String>? = null,
val type: String? = null,
val creativeType: String? = null,
val data: String? = null,
val tracking: List<LuraAdCompanionTracking>? = null,
)

LuraInteractiveFile

ParameterTypeDescription
apiFrameworkString?Identifies the API needed to execute the resource file if applicable
typeString?Identifies the MIME type of the file provided.
urlString?URI to a file providing creative functions for the media file.
variableDurationBoolean?Useful for interactive use cases. Identifies whether the ad always drops when the duration is reached, or if it can potentially extend the duration by pausing the underlying video or delaying the adStopped call after adVideoComplete. If set to true, the extension of the duration should be user-initiated (typically, by engaging with an interactive element to view additional content).
@Serializable
data class LuraInteractiveFile(
val apiFramework: String? = null,
val type: String? = null,
val url: String? = null,
val variableDuration: Boolean? = null,
)

LuraAdCompanionTracking

ParameterTypeDescription
offsetString?Offset for progress trackings
typeString?Type of the tracking event.
urlString?A URI to the tracking resource for the event specified using the event attribute.
@Serializable
data class LuraAdCompanionTracking(
val type: String?,
val url: String?,
val offset: String? = null,
)

LuraAdIcon

ParameterTypeDescription
programString?The program represented in the icon.
widthString?Pixel width of the icon asset
heightString?Pixel height of the icon asset.
xPositionString?The x-coordinate of the top, left corner of the icon asset relative to the ad display area. Values of "left" or "right" also accepted and indicate the leftmost or rightmost available position for the icon asset.
yPositionString?The y-coordinate of the top left corner of the icon asset relative to the ad display area; values of"top" or "bottom" also accepted and indicate the topmost or bottommost available position for the icon asset.
durationString?The duration the icon should be displayed unless clicked or ad is finished playing in seconds.
offsetString?The time of delay from when the associated linear creative begins playing to when the icon should be displayed in seconds.
apiFrameworkString?Identifies the API needed to execute the icon resource file if applicable.
pxRatioString?The pixel ratio for which the icon creative is intended. The pixel ratio is the ratio of physical pixels on the device to the device-independent pixels. An ad intended for display on a device with a pixel ratio that is twice that of a standard 1:1 pixel ratio would use the value "2 " Default value is "1 ".
clicksString?Icon clicks
typeString?Resource type of the creative
creativeTypeString?Mime type of the creative
dataString?Data of the creative, URL for static and iframe resources, html code snippet for html resource. Check the type field for the resource type
@Serializable
data class LuraAdIcon(
val program: String? = null,
val width: String? = null,
val height: String? = null,
val xPosition: String? = null,
val yPosition: String? = null,
val duration: Double? = null,
val offset: String? = null,
val apiFramework: String? = null,
val pxRatio: String? = null,
val clicks: LuraAdClicks? = null,
val type: String? = null,
val creativeType: String? = null,
val data: String? = null,
)

LuraAdClicks

ParameterTypeDescription
clickThroughString?A URI to the industryprogram page opened when a viewer clicks the icon.
clickTrackingList<LuraAdClickTracking>?Track click activity within the icon.
@Serializable
data class LuraAdClicks(
val clickThrough: String? = null,
val clickTracking: List<LuraAdClickTracking>? = null,
)

LuraClickTracking

ParameterTypeDescription
idString?An id for the click to be measured.
urlString?A URI to the tracking resource file to be called when a click corresponding to the id attribute (if provided) occurs.
@Serializable
data class LuraAdClickTracking(
val id: String? = null,
val url: String? = null,
)

LuraCastTargets

ParameterType
targetString
enum class LuraCastTargets(private val target: String) {
CHROMECAST("chromecast")
}

LuraMedia

ParameterTypeDescription
typeStringMedia type
urlStringMedia url
licenseUrlString?DRM license url
heightIntMedia height
widthIntMedia width
languageStringMedia language
@Serializable
data class LuraMedia(
val type: String,
val url: String,
val licenseUrl: String? = null,
val height: Int = 0,
val width: Int = 0,
val language: String? = null,
)

LuraEventListener

typealias LuraEventListener = FlowCollector<LuraEvent>

LuraAvailabilityWindow

ParameterTypeDescription
idStringIdentifier for the availability window
startDoubleStart time of the availability window
endDoubleEnd time of the availability window
@Serializable
data class LuraAvailabilityWindow(
val id: String,
val start: Double,
val end: Double,
)

LuraScreenState

@Serializable
enum class LuraScreenState {
@SerialName("FULLSCREEN")
FULLSCREEN,

@SerialName("PICTURE_IN_PICTURE")
PICTURE_IN_PICTURE,

@SerialName("WINDOWED")
WINDOWED,
}