playback.md

Loading and playing content

Pass a source configuration object to player.load() to load content into an initialised player. You can then control playback or destroy the player instance when it is no longer needed.

Prerequisites

You have an initialised MKPlayer instance. See Installation and setup.

Load a source

Build a MKSourceConfig object that describes your content, then call player.load():

const sourceConfig = {
  title: "My Stream",
  description: "A brief description of the content",
  poster: "https://my-cdn.com/mysource/poster.png",
  hls: "https://my-cdn.com/mysource/hls/index.m3u8",
  dash: "https://my-cdn.com/mysource/dash/manifest.mpd"
};

player.load(sourceConfig)
  .then(() => {
    console.log("Source loaded successfully");
  })
  .catch((error) => {
    console.error("Source load failed: ", error);
  });

Pass only one stream type in the source configuration: either hls or dash. When both are present, the player selects based on platform support.

For DRM-protected content, you also need to pass a drm property. See DRM protection.

Source configuration options

Property Type Description
title string Display title for the source.
description string Brief description of the source.
poster string URL to a poster image shown before playback starts.
hls string URL to an HLS master playlist.
dash string URL to a DASH manifest.
drm MKDrmConfig DRM configuration for protected content. See DRM protection.
subtitleTracks MKSubtitleTrack[] External subtitle tracks to register with the player.
enableLowLatency boolean Enables low-latency mode for live streams.
assetType MKAssetType Required for registered sources. Values: live, event, catchup, dvr, vod.

Control playback

After a source is loaded, use the player API to control playback:

// Start or resume playback
player.play();

// Pause
player.pause();

// Seek to a position (seconds)
player.seek(30);

// Set volume (0–100)
player.setVolume(80);

// Mute and unmute
player.mute();
player.unmute();

// Set playback speed (HTML5 player only)
// Values between 0 and 1 are slow motion; values above 1 are fast forward
player.setPlaybackSpeed(1.5);

Unload a source

To stop playback and clear the current source without destroying the player instance:

player.unload()
  .then(() => {
    console.log("Source unloaded");
  })
  .catch((error) => {
    console.error("Unload failed: ", error);
  });

You can call player.load() again after unload() to play a different source.

Destroy the player

To tear down the player entirely and release all held resources:

player.destroy();

You must create a new MKPlayer instance after calling destroy(). Calling a player API method after destroy() returns a PLAYER_API_NOT_AVAILABLE error.

It is recommended to wait for the Destroy event before discarding your player reference:

player.on(mkplayer.MKPlayerEvent.Destroy, () => {
  console.log("Player destroyed and resources released");
  player = null;
});

player.destroy();