Player Types Reference
This section provides reference documentation for all types, enums, and classes available in the Lura Player .NET/C# SDK for Tizen.
Core Event Types
Lura.Unified.UnifiedEvent
Non-generic event class for player events.
| Property | Type | Description |
|---|---|---|
| Type | UnifiedEventName | The event type enum |
| Data | object? | The event data payload |
| PlayerName | string | The name of the player instance |
| Initiator | InitiatorType | Whether the event was triggered by USER or SYSTEM |
| Timestamp | DateTime | UTC timestamp when the event occurred |
public class UnifiedEvent
{
public UnifiedEventName Type { get; set; }
public object? Data { get; set; }
public string PlayerName { get; set; }
public InitiatorType Initiator { get; set; }
public DateTime Timestamp { get; set; }
}
Lura.Unified.UnifiedEventName
Enumeration of all possible player events.
public enum UnifiedEventName
{
CAN_PLAY,
PLAYING,
PAUSED,
ENDED,
ERROR,
WARNING,
BUFFERING_STARTED,
BUFFERING_ENDED,
DURATION_CHANGE,
TIME_UPDATED,
SEEKED,
SEEKING,
RATE_CHANGE,
VOLUME_CHANGED,
MUTE_CHANGED,
SCREEN_STATE_CHANGED,
TRACK_CHANGED,
TRACKS_UPDATED,
LOADED_MEDIA_INFO,
CAPTION_DISPLAY_CHANGED,
AD_IMPRESSION,
AD_BREAK_STARTED,
AD_STARTED,
AD_FIRST_QUARTILE,
AD_MIDPOINT,
AD_THIRD_QUARTILE,
AD_COMPLETED,
AD_BREAK_COMPLETED,
AD_CLICKED,
AD_SKIPPED,
AD_INTERACTION,
CASTING_REQUESTED,
CASTING_STARTED,
CASTING_ENDED,
INTERSTITIALS,
TRICK_PLAY_DATA_EVENT,
CAST_AVAILABILITY_CHANGED,
TIMED_METADATA,
DASH_TIMED_METADATA,
LIVE_AVAILABILITY_WINDOW_FOUND,
EVENT_METADATA_UPDATED,
CUSTOM_DATA_CHANGED,
CLEARED,
EVENT_NOTIFIED,
REPLAY,
SHOW_CAPTION,
BUFFER_CHANGED,
NON_LINEAR_MARKERS,
NON_LINEAR_STARTED,
NON_LINEAR_COMPLETED,
NON_LINEAR_PROGRESS,
NON_LINEAR_LOADED,
PLAYLIST_ITEM_CHANGED,
PLAYLIST_ITEM_LOADED,
CONFIGURED
}
Lura.Unified.InitiatorType
Indicates who initiated an action.
| Value | Description |
|---|---|
| USER | Action initiated by the user |
| SYSTEM | Action initiated by the system/player |
public enum InitiatorType
{
USER,
SYSTEM
}
Video & Media Types
Lura.Unified.VideoType
Enumeration of video content types.
| Value | Description |
|---|---|
| VOD | Video on Demand content |
| LIVE | Live streaming content |
| LIVE_DVR | Live streaming with DVR capabilities |
| LIVE_CATCH_UP | Live catch-up streaming |
public enum VideoType
{
VOD,
LIVE,
LIVE_DVR,
LIVE_CATCH_UP
}
Lura.Unified.MediaFormat
Enumeration of media format types.
| Value | Description |
|---|---|
| DASH | DASH (Dynamic Adaptive Streaming over HTTP) format |
| HLS | HLS (HTTP Live Streaming) format |
| PROGRESSIVE | Progressive download format |
public enum MediaFormat
{
DASH,
HLS,
PROGRESSIVE
}
Lura.Unified.TrackTypes
Enumeration of media track types.
| Value | Description |
|---|---|
| AUDIO | Audio track |
| CAPTION | Caption/subtitle track |
| VIDEO | Video track |
| VIEW_GRID | View grid track |
public enum TrackTypes
{
AUDIO,
CAPTION,
VIDEO,
VIEW_GRID
}
Track Types
Lura.Unified.Tracks
Container for all available media tracks.
| Property | Type | Description |
|---|---|---|
| Audio | List<AudioTrack> | List of available audio tracks |
| Caption | List<CaptionTrack> | List of available caption tracks |
| Video | List<VideoTrack>? | List of available video tracks |
| ViewGrid | List<ViewGrid>? | List of available view grids |
public class Tracks
{
public List<AudioTrack>? Audio { get; set; }
public List<CaptionTrack>? Caption { get; set; }
public List<VideoTrack>? Video { get; set; }
public List<ViewGrid>? ViewGrid { get; set; }
}
Lura.Unified.AudioTrack
Represents an audio track.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the track |
| Language | string? | Language code (e.g., "en", "es") |
| Label | string? | Display label (e.g., "English") |
| Active | bool | Whether this track is currently active |
| Bitrate | int? | Bitrate in kbps |
public class AudioTrack
{
public string? Id { get; set; }
public string? Language { get; set; }
public string? Label { get; set; }
public bool Active { get; set; }
public int? Bitrate { get; set; }
}
Lura.Unified.CaptionTrack
Represents a caption/subtitle track.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the track |
| Language | string? | Language code (e.g., "en", "es") |
| Label | string? | Display label (e.g., "English") |
| Active | bool | Whether this track is currently active |
| Kind | string? | Type/kind of caption |
public class CaptionTrack
{
public string? Id { get; set; }
public string? Language { get; set; }
public string? Label { get; set; }
public bool Active { get; set; }
public string? Kind { get; set; }
}
Lura.Unified.VideoTrack
Represents a video quality track.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the track |
| Bitrate | int? | Bitrate in kbps |
| Width | int? | Video width in pixels |
| Height | int? | Video height in pixels |
| Active | bool | Whether this track is currently active |
public class VideoTrack
{
public string? Id { get; set; }
public int? Bitrate { get; set; }
public int? Width { get; set; }
public int? Height { get; set; }
public bool Active { get; set; }
}
Lura.Unified.ViewGrid
Represents a view grid configuration.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the view grid |
| Label | string? | Display label |
| Active | bool | Whether this view grid is currently active |
public class ViewGrid
{
public string? Id { get; set; }
public string? Label { get; set; }
public bool Active { get; set; }
}
Screen & Casting Types
Lura.Unified.ScreenState
Enumeration of player screen states.
| Value | Description |
|---|---|
| WINDOWED | Player is in windowed mode |
| FULLSCREEN | Player is in fullscreen mode |
| PICTURE_IN_PICTURE | Player is in picture-in-picture mode |
public enum ScreenState
{
WINDOWED,
FULLSCREEN,
PICTURE_IN_PICTURE
}
Lura.Unified.CastTargets
Enumeration of casting target types.
| Value | Description |
|---|---|
| CHROMECAST | Chromecast casting target |
| AIRPLAY | AirPlay casting target |
public enum CastTargets
{
CHROMECAST,
AIRPLAY
}
Ad Types
Lura.Unified.AdBreak
Represents an ad break/pod.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the ad break |
| Ads | List<Ad>? | List of ads in this break |
| Offset | int? | Start time offset in seconds |
public class AdBreak
{
public string? Id { get; set; }
public List<Ad>? Ads { get; set; }
public int? Offset { get; set; }
}
Lura.Unified.Ad
Represents an individual ad.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the ad |
| Title | string? | Ad title |
| Description | string? | Ad description |
| Duration | int? | Ad duration in seconds |
| CurrentTime | double? | Current playback position |
| Skippable | bool? | Whether the ad can be skipped |
| SkipOffset | int? | Time in seconds before skip is allowed |
public class Ad
{
public string? Id { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public int? Duration { get; set; }
public double? CurrentTime { get; set; }
public bool? Skippable { get; set; }
public int? SkipOffset { get; set; }
}
Lura.Unified.AdCue
Represents an ad cue point.
| Property | Type | Description |
|---|---|---|
| Id | string | Unique identifier for the cue |
| Type | CueType | Type of cue (AD_BREAK or CHAPTER) |
| Data | AdCueData? | Additional cue data |
public class AdCue
{
public string Id { get; set; } = string.Empty;
public CueType Type { get; set; }
public AdCueData? Data { get; set; }
}
Lura.Unified.AdCueData
Data associated with an ad cue.
| Property | Type | Description |
|---|---|---|
| AdPosition | int | Position of the ad |
public class AdCueData
{
public int AdPosition { get; set; }
}
Lura.Unified.CueType
Enumeration of cue point types.
| Value | Description |
|---|---|
| AD_BREAK | Ad break cue point |
| CHAPTER | Chapter cue point |
public enum CueType
{
AD_BREAK,
CHAPTER
}
Player State Types
Lura.Unified.TimeUpdateDataInterface
Represents current playback time and buffer information.
| Property | Type | Description |
|---|---|---|
| CurrentTime | double | Current playback position in seconds |
| Duration | double | Total duration in seconds |
| BufferedStart | double | Start of buffered range in seconds |
| BufferedEnd | double | End of buffered range in seconds |
| Ad | Ad? | Current ad information if applicable |
public class TimeUpdateDataInterface
{
public double CurrentTime { get; set; }
public double Duration { get; set; }
public double BufferedStart { get; set; }
public double BufferedEnd { get; set; }
public Ad? Ad { get; set; }
}
Lura.Unified.PlayerCapabilities
Represents the capabilities supported by the player.
| Property | Type | Description |
|---|---|---|
| SupportsAutoplay | bool? | Whether autoplay is supported |
| SupportsFullscreen | bool? | Whether fullscreen is supported |
| SupportsPictureInPicture | bool? | Whether picture-in-picture is supported |
| SupportsCasting | bool? | Whether casting is supported |
| SupportsAds | bool? | Whether ad playback is supported |
| SupportsTracks | bool? | Whether track selection is supported |
public class PlayerCapabilities
{
public bool? SupportsAutoplay { get; set; }
public bool? SupportsFullscreen { get; set; }
public bool? SupportsPictureInPicture { get; set; }
public bool? SupportsCasting { get; set; }
public bool? SupportsAds { get; set; }
public bool? SupportsTracks { get; set; }
}
Lura.Unified.AvailabilityWindow
Represents a DVR availability window for live streams.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier for the window |
| Title | string? | Window title |
| StartTime | double? | Start time in seconds |
| EndTime | double? | End time in seconds |
public class AvailabilityWindow
{
public string? Id { get; set; }
public string? Title { get; set; }
public double? StartTime { get; set; }
public double? EndTime { get; set; }
}
Lura.Unified.CallToActionItem
Represents a call-to-action overlay.
| Property | Type | Description |
|---|---|---|
| Id | string? | Unique identifier |
| Title | string? | CTA title |
| Url | string? | Destination URL |
| StartTime | int? | Start time in seconds |
| EndTime | int? | End time in seconds |
public class CallToActionItem
{
public string? Id { get; set; }
public string? Title { get; set; }
public string? Url { get; set; }
public int? StartTime { get; set; }
public int? EndTime { get; set; }
}
Lura.Unified.EventMetadata
Represents metadata for an event.
| Property | Type | Description |
|---|---|---|
| Title | string? | Event title |
| Description | string? | Event description |
| StartTime | double? | Start time in seconds |
| EndTime | double? | End time in seconds |
| CustomMetadata | Dictionary<string, object>? | Custom key-value metadata |
| DvrAvailability | bool? | Whether DVR is available |
public class EventMetadata
{
public string? Title { get; set; }
public string? Description { get; set; }
public double? StartTime { get; set; }
public double? EndTime { get; set; }
public Dictionary<string, object>? CustomMetadata { get; set; }
public bool? DvrAvailability { get; set; }
}
Configuration Types
Lura.Unified.Configuration
Main configuration class for the player.
| Property | Type | Description |
|---|---|---|
| Debug | bool? | Enable debug mode |
| PlayerOpsKey | string? | Player operations key |
| Name | string? | Player name displayed in events |
| PreloadId | string? | Preload ID managed by player |
| Lura | LuraConfiguration? | Lura configuration for MCP integration |
| Analytics | AnalyticsConfiguration? | Analytics configuration |
| Ads | AdsConfiguration? | Ad configuration |
| Cast | CastConfiguration? | Casting configuration |
| Controls | ControlsConfiguration? | UI controls configuration |
| Content | ContentConfiguration? | Content/media configuration |
| Plugins | PluginsConfiguration? | Plugin configuration |
| Initialization | InitializationConfiguration? | Initialization settings |
| Teasers | TeasersConfiguration? | Teaser configuration |
public class Configuration
{
public bool? Debug { get; set; }
public string? PlayerOpsKey { get; set; }
public string? Name { get; set; }
public string? PreloadId { get; set; }
public LuraConfiguration? Lura { get; set; }
public AnalyticsConfiguration? Analytics { get; set; }
public AdsConfiguration? Ads { get; set; }
public CastConfiguration? Cast { get; set; }
public ControlsConfiguration? Controls { get; set; }
public ContentConfiguration? Content { get; set; }
public PluginsConfiguration? Plugins { get; set; }
public InitializationConfiguration? Initialization { get; set; }
public TeasersConfiguration? Teasers { get; set; }
}
Lura.Unified.LuraConfiguration
Configuration for Lura MCP integration.
| Property | Type | Description |
|---|---|---|
| AppKey | string? | Authentication key from MCP |
| AssetId | string? | ID of the asset to play |
| Token | string? | Token of the asset to play |
public class LuraConfiguration
{
public string? AppKey { get; set; }
public string? AssetId { get; set; }
public string? Token { get; set; }
}
Lura.Unified.ContentConfiguration
Configuration for media content.
| Property | Type | Description |
|---|---|---|
| Media | List<ContentMedia>? | Media objects to play |
| ClientCertificates | ContentClientCertificatesConfiguration? | Client certificates for DRM |
| Title | string? | Video title |
| Description | string? | Video description |
| Captions | ContentCaptionsConfiguration? | Caption configuration |
| PreferredDRMSystems | List<ContentDrmSystem>? | Preferred DRM systems |
| Language | string? | Fallback language |
| Type | ContentType? | Video type (VOD or Live) |
| StartAt | float? | Start time in seconds |
| Annotations | List<ContentAnnotation>? | Intro/Outro annotations |
| Dvr | ContentDvrConfiguration? | DVR configuration |
| AspectRatio | string? | Aspect ratio of the stream |
public class ContentConfiguration
{
public List<ContentMedia>? Media { get; set; }
public ContentClientCertificatesConfiguration? ClientCertificates { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public ContentCaptionsConfiguration? Captions { get; set; }
public List<ContentDrmSystem>? PreferredDRMSystems { get; set; }
public string? Language { get; set; }
public ContentType? Type { get; set; }
public float? StartAt { get; set; }
public List<ContentAnnotation>? Annotations { get; set; }
public ContentDvrConfiguration? Dvr { get; set; }
public string? AspectRatio { get; set; }
}
Lura.Unified.ContentMedia
Represents a media source.
| Property | Type | Description |
|---|---|---|
| Url | string? | Media URL |
| Type | string? | MIME type (e.g., "video/mp4") |
| Width | float? | Width for trickplay images |
| Height | float? | Height for trickplay images |
| Duration | float? | Duration in seconds |
| Layout | string? | Layout type |
| Label | string? | Display label |
| Language | string? | Language code |
| LicenseUrl | string? | DRM license URL |
public class ContentMedia
{
public string? Url { get; set; }
public string? Type { get; set; }
public float? Width { get; set; }
public float? Height { get; set; }
public float? Duration { get; set; }
public string? Layout { get; set; }
public string? Label { get; set; }
public string? Language { get; set; }
public string? LicenseUrl { get; set; }
}
Lura.Unified.ControlsConfiguration
Configuration for player controls.
| Property | Type | Description |
|---|---|---|
| Enabled | bool? | Whether UI is enabled |
| Theme | string? | UI theme |
| Autoplay | bool? | Whether to autoplay |
| Muted | bool? | Whether to start muted |
| Volume | float? | Initial volume (0.0 - 1.0) |
| Layout | ControlsLayout? | UI layout |
| Platform | ControlsPlatform? | UI platform |
| Loop | bool? | Whether to loop playback |
| Sharing | ControlsSharingConfiguration? | Sharing configuration |
public class ControlsConfiguration
{
public bool? Enabled { get; set; }
public string? Theme { get; set; }
public bool? Autoplay { get; set; }
public bool? Muted { get; set; }
public float? Volume { get; set; }
public ControlsLayout? Layout { get; set; }
public ControlsPlatform? Platform { get; set; }
public bool? Loop { get; set; }
public ControlsSharingConfiguration? Sharing { get; set; }
}
MIME Type Constants
Lura.Unified.MediaMimeType
Static class containing common media MIME types.
| Constant | Value | Description |
|---|---|---|
| VideoMp4 | "video/mp4" | MP4 video |
| VideoWebm | "video/webm" | WebM video |
| AudioMp4 | "audio/mp4" | MP4 audio |
| VideoMp2T | "video/mp2t" | MPEG-TS video |
| AudioAac | "audio/aac" | AAC audio |
| AudioAc3 | "audio/ac3" | AC-3 audio |
| AudioEc3 | "audio/ec3" | Enhanced AC-3 audio |
| VideoHlsApple | "application/vnd.apple.mpegurl" | HLS (Apple) |
| VideoHls | "application/x-mpegurl" | HLS |
| AudioHls | "audio/mpegurl" | HLS audio |
| VideoDash | "application/dash+xml" | DASH |
| AudioMp3 | "audio/mpeg" | MP3 audio |
public static class MediaMimeType
{
public const string VideoMp4 = "video/mp4";
public const string VideoWebm = "video/webm";
public const string AudioMp4 = "audio/mp4";
public const string VideoMp2T = "video/mp2t";
public const string AudioAac = "audio/aac";
public const string AudioAc3 = "audio/ac3";
public const string AudioEc3 = "audio/ec3";
public const string VideoHlsApple = "application/vnd.apple.mpegurl";
public const string VideoHls = "application/x-mpegurl";
public const string AudioHls = "audio/mpegurl";
public const string VideoDash = "application/dash+xml";
public const string AudioMp3 = "audio/mpeg";
}
Lura.Unified.SubtitleMimeType
Static class containing common subtitle MIME types.
| Constant | Value | Description |
|---|---|---|
| Plain | "text/plain" | Plain text |
| Vtt | "text/vtt" | WebVTT |
| Srt | "text/srt" | SRT |
| Ttml | "application/ttml+xml" | TTML |
| Dfxp | "application/ttaf+xml" | DFXP |
| Smptett | "application/smpte-tt+xml" | SMPTE-TT |
| Scc | "application/x-scc" | SCC |
public static class SubtitleMimeType
{
public const string Plain = "text/plain";
public const string Vtt = "text/vtt";
public const string Srt = "text/srt";
public const string Ttml = "application/ttml+xml";
public const string Dfxp = "application/ttaf+xml";
public const string Smptett = "application/smpte-tt+xml";
public const string Scc = "application/x-scc";
}
Lura.Unified.PosterMimeType
Static class containing common poster image MIME types.
| Constant | Value | Description |
|---|---|---|
| Jpg | "image/jpg" | JPEG image |
| Png | "image/png" | PNG image |
| Jpeg | "image/jpeg" | JPEG image |
| Webp | "image/webp" | WebP image |
| Apng | "image/apng" | Animated PNG |
| Avif | "image/avif" | AVIF image |
| Bif | "image/bif" | BIF trickplay image |
public static class PosterMimeType
{
public const string Jpg = "image/jpg";
public const string Png = "image/png";
public const string Jpeg = "image/jpeg";
public const string Webp = "image/webp";
public const string Apng = "image/apng";
public const string Avif = "image/avif";
public const string Bif = "image/bif";
}
Player Interface
Lura.Unified.UnifiedPlayer
Interface defining the public player API.
| Method | Return Type | Description |
|---|---|---|
| Name | string | Gets/sets the player name |
| Version | string | Gets the player version |
| SetConfig | Task<Configuration> | Sets the player configuration |
| UpdateConfig | Task | Updates the player configuration |
| Play | void | Starts playback |
| Pause | void | Pauses playback |
| IsPaused | bool | Checks if paused |
| IsPlaying | bool | Checks if playing |
| Seek | void | Seeks to specified time |
| GetDuration | double | Gets total duration |
| GetCurrentTime | double | Gets current playback time |
| GetVolume | double | Gets current volume |
| SetVolume | void | Sets the volume |
| IsMuted | bool | Gets mute state |
| SetMuted | void | Sets mute state |
| AddListener | Action<UnifiedEvent> | Adds an event listener |
| RemoveListener | void | Removes an event listener |
| Destroy | void | Destroys the player |
public interface IExposedPlayer
{
string Name { get; set; }
string Version { get; }
Task<Configuration> SetConfig(Configuration config, bool tokenFlow = false);
Task UpdateConfig(Configuration config);
void Play();
void Pause();
bool IsPaused();
bool IsPlaying();
void Seek(double time);
double GetDuration();
double GetCurrentTime();
double GetVolume();
void SetVolume(double volume);
bool IsMuted { get; }
void SetMuted(bool muted);
string AddListener(Action<UnifiedEvent> listener);
void RemoveListener(string id);
void Destroy();
}