Documentation

Release History - Version 10

Release notes quick-access

Latest version: 10.1.1 PRODUCTION

Upgrading to v10 from v9? read our migration guide to avoid breaking changes in your player set up! It should be noted that only critical bug fix will be released for Radiant Media Player v9 from now on, so all users are encouraged to update to Radiant Media Player v10 as soon as possible. Radiant Media Player v9 documentation can still be accessed here.

10.1.*: 10.1.1 PRODUCTION, 10.1.0 PRODUCTION

10.0.*: 10.0.9 PREVIEW, 10.0.8 PREVIEW, 10.0.7 PREVIEW, 10.0.6 PREVIEW, 10.0.5 PREVIEW, 10.0.4 PREVIEW, 10.0.3 PREVIEW, 10.0.2 PREVIEW, 10.0.1 PREVIEW, 10.0.0 PREVIEW


  • 10.1.1 - February 10, 2025 PRODUCTION

    PRODUCTION RELEASE

    • Service release
      • No new feature
  • 10.1.0 - February 6, 2025 PRODUCTION

    PRODUCTION RELEASE

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • Added forceMseHlsOnAppleDevices setting that replaces forceHlsJSOnAppleDevices (forceHlsJSOnAppleDevices is still available for backward compatibility)
    • Bug fixes
      • adLinear, adOnStage, adSystem, adTitle, adDescription, adMediaWidth, adMediaHeight, adDuration, adUniversalAdIds, advertiserName, adSkipTimeOffset
  • Previous releases are PREVIEW releases and should not be used in production
  • 10.0.9 - February 3, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • Added iconSpinner setting and set default value to 'classic' for a classic circling spinner (other option is 'rmp' for a more modern spinner)
    • Bug fixes
      • Fixed a race issue that could cause setSrc API to fail when used before player initialisation
      • Fixed a layout issue when using a custom flex items order for time/volume elements in player control bar
    • Dependencies
      • Updated Shaka player: 4.12.8 -> 4.12.10 for latest bug fixes
  • 10.0.8 - January 30, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Bug fixes
      • Fixed stop, seekToChapter, seekToFrame, loadAds API methods that could fail at rejecting in some edge cases
  • 10.0.7 - January 30, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Bug fixes
      • Clarified Promise rejection value for setSrc that can be either an error or a warning (non-fatal)
      • Fixed an issue that could happen when using setSrc API method before player initialisation where Promise would not reject as expected
      • Fixed some warnings that would not return correct value with warningData getter
  • 10.0.6 - January 27, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Bug fixes
      • Fixed a Promise race issue that could cause error at init method to resolve when supposed to reject
      • Fixed returned value for Promise rejection with API methods that reject to a WarningData Object (WarningData Object would return default values before)
  • 10.0.5 - January 24, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • Re-added dashFirst setting
      • Some logs reformatting for debug build
    • Dependencies
      • Updated hls.js: 1.5.18 -> 1.5.20 for latest bug fixes
  • 10.0.4 - January 22, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • All player builds now have a specific types file
      • Added warningData getter
    • Dependencies
      • Updated Shaka player: 4.12.4 -> 4.12.8 for latest bug fixes
  • 10.0.3 - January 22, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • Re-named rmp.module.js to rmp.min.mjs file to for better consistency
      • Added the possibility to load Radiant Media Player as a module through our cloud-player with importmap
    • Bug fixes
      • Fixed default text track that would not be enabled on iOS when using ccFiles setting
      • getAutoplayResult and getStreamMode API method can now be called before ready event
  • 10.0.2 - January 20, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • Improved documentation for types (JSDoc, TypeScript)
    • Bug fixes
      • Re-added missing rmp.min.d.mts file with v10 release
  • 10.0.1 - January 15, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • Improvements
      • Revamp UI for cue-points
    • Bug fixes
      • Fixed custom modules not positioned correctly, following v10 release
      • Fixed waiting UI not positioned correctly for s2 skin, following v10 release
  • 10.0.0 - January 13, 2025 PREVIEW

    PREVIEW RELEASE - DO NOT USE IN PRODUCTION - ONLY FOR DEVELOPMENT AND TESTING

    Radiant Media Player v10 brings our player up to modern JavaScript standards with a complete rewrite to add CSS Flexbox and JavaScript async, Promise, getter|setter support - Radiant Media Player v10 is our fastest and best developer-friendly work to date - Enjoy!

    • CSS Flexbox support - Breaking Changes
      • Rewritten player CSS with CSS Flexbox for improved responsive design
      • The new Less CSS player files structure is as follows:
        • 360/360.less
        • accessibility/accessibility.less
        • ads/ad-blocker.less
        • ads/ads.less
        • ads/rmp-vast.less
        • ads/ssai.less
        • ads/vpaid.less
        • audio-only/audio-only.less
        • cast/airplay.less
        • cast/google-cast.less
        • control-bar/auto-hide.less
        • control-bar/control-bar.less
        • control-bar/cue-point.less
        • control-bar/hide-controls.less
        • helpers/colors.less
        • helpers/fonts.less
        • helpers/mixins.less
        • helpers/reset.less
        • helpers/scrollbar.less
        • icons/common-icons.less
        • icons/icons-font-awesome.less
        • icons/icons-material.less
        • icons/icons-size.less
        • list/playlist.less
        • list/related.less
        • live/dvr.less
        • live/live.less
        • misc/central-ui.less
        • misc/container.less
        • misc/error.less
        • misc/floating.less
        • misc/fullscreen.less
        • misc/logo.less
        • misc/poster.less
        • misc/title-description.less
        • misc/transcripts.less
        • modules/fcc.less
        • modules/modules.less
        • modules/sharing.less
        • modules/vtt-js.less
        • skins/outstream.less
        • skins/s1.less
        • skins/s2.less
        • skins/tv.less
        • spinner/spinner.less
      • Added module selection support when an overlay module is opened
      • Rewritten transcript layout with CSS Flexbox
      • Rewritten related layout with CSS Flexbox and revamped related wall UI
      • Rewritten playlist layout with CSS Flexbox and revamped playlist UI
      • Replaced rmp-time-total CSS class with rmp-seek-bar-sliding-area
      • Replaced rmp-current CSS class with rmp-seek-bar-sliding-current-position CSS class
      • Replaced rmp-loaded CSS class with rmp-seek-bar-sliding-loaded
      • Replaced rmp-handle CSS class with rmp-seek-bar-sliding-handle CSS class
    • Streaming
      • Added cmcdIncludeKeys setting to support includeKeys CMCD for Shaka player (already available for hls.js)
      • Replaced forceHlsJSOnIpadOS, forceHlsJSOnMacOSSafari and forceHlsJSOnIos settings with forceHlsJSOnAppleDevices setting
      • Removed retryParameters.maxTimeout property and updated default timeout values for a more patient default retry behaviour
      • Shaka player will now select codecs with lowest bitrate by default if multiple codecs are available for a same rendition
      • Improved ABR logic with Shaka player for faster bandwidth estimate computation
      • Added ignoreHardwareResolution setting (Shaka player only)
      • Added disableIFrames setting (Shaka player only)
      • Added disableThumbnails setting (Shaka player only)
      • Replaced preferSpatialAudio with audioPreference.spatialAudio
      • Added audioCodecs property to audioPreference setting
      • Added textFormats to subtitlePreference setting
      • Replaced preferredVideoCodecs and preferredVideoHdr settings with videoPreference.videoCodecs and videoPreference.videoHdr - Added videoPreference setting
      • Added abrstatuschanged API event
      • Added emsg meta API event with Shaka player - emsg metadata can be queried with metadata getter when meta event fires
      • Added ID3 meta API event with Shaka player - ID3 metadata can be queried with metadata getter when meta event fires
      • Replaced autoLowLatencyMode setting with lowLatencyMode setting that needs to be explicitly set - this is to avoid unnecessary code execution for non-low-latency streams
      • Added HDR mention in quality menu for MPEG-DASH when available
      • Added displayCodecData setting (defaults to false) to display codecs info for each rendition in quality menu
    • Video ads
      • Added adScheduleReloadOnEnded setting
      • Added adTagWaterfall optional parameter to loadAds API method to pass a client-side waterfall solution when dynamically loading video ads in player
      • Added adprogress and adbuffering API events
      • Added shakaAWSMediaTailorTrackingUrl setting
    • Mobile devices
      • Added automaticLandscapeOnFullScreen setting
      • automaticLandscapeOnFullScreen and automaticFullscreenOnLandscape settings now lock screen on landscape mode - viewer needs to explicitly exit fullscreen to disable lock
    • 360° video
      • Added gyrometer-based 360° video for mobile devices (note that this requires granting permission for iOS)
      • Added video360MobileGyroOffset setting
    • Closed captions (externally loaded) - Breaking Changes
      • ccFiles setting needs to be passed as an Array of Object now. Each Object has the following properties:
        • lng: String
        • name: String
        • uri: String
        • default: Boolean
    • Transcripts - Breaking Changes
      • transcripts setting needs to be passed as an Array of Object now. Each Object has the following properties:
        • lng: String
        • name: String
        • uri: String
      • Transcripts UI now takes the full width of the parent container
    • Player API - Breaking Changes
      • The following player API methods have been replaced with getters-only
        • getReady > ready
        • getMetadata > metadata
        • getEnvironment > environment
        • getPlayerVersion > playerVersion
        • getPreload > preloadConfiguration
        • getAppName > appNameConfiguration
        • getRatio > ratio
        • getCurrentTimeBeforeSeek > currentTimeBeforeSeek
        • getStreamType > streamType
        • getCurrentTime > currentTime
        • getDuration > duration
        • getLiveDuration > duration
        • getLiveCurrentTime > currentTime
        • getLivePresentationStartTimeAsDate > livePresentationStartTimeAsDate
        • getChapters > chaptersData
        • getTimeViewed > timeViewed
        • getPercentViewed > percentViewed
        • getCurrentTimeInPercent > currentTimeInPercent
        • getTimeReady > timeReady
        • getStartUpTime > startUpTime
        • getBitrates > qualities
        • getAbrAutoMode > abrAutoMode
        • getAudioTracks > audioTracks
        • getCCVisibleLanguage > ccVisibleLanguage
        • getCaptionsData > captionsData
        • getCastMediaLoaded > castMediaLoaded
        • getCastConnected > castConnected
        • getCastUrl > castUrl
        • getHlsManifestData > hlsManifestData
        • getHlsSessionData > hlsSessionData
        • getHlsLevelData > hlsLevelData
        • getHlsFragmentData > hlsFragmentData
        • getHlsFragmentBeingPlayedData > hlsFragmentBeingPlayedData
        • getHlsJSInstance > hlsJSInstance
        • getShakaPlayerInstance > shakaPlayerInstance
        • getHtmlMediaElement > htmlMediaElement
        • getBandwidthEstimate > bandwidthEstimate
        • getErrorData > errorData
        • getFramerate > currentFramerate
        • getDroppedFramesCount > droppedFramesCount
        • getCurrentFrameNumber > currentFrameNumber
        • getTotalFramesNumber > totalFramesNumber
        • getCurrentCuePointData > cuePointData
        • getDownloadProgress > downloadProgress
        • getAdParser > adParserConfiguration
        • isVpaidCreative > vpaidCreative
        • getAdLinear > adLinear
        • getAdSystem > adSystem
        • getAdContentType > adContentType
        • getAdTitle > adTitle
        • getAdDescription > adDescription
        • getAdMediaUrl > adMediaUrl
        • getAdMediaHeight > adMediaHeight
        • getAdMediaWidth > adMediaWidth
        • getAdCurrentTime > adCurrentTime
        • getAdDuration > adDuration
        • getAdOnStage > adOnStage
        • getAdPaused > adPaused
        • getAdTagUrl > currentAdTagUrl
        • getAdSkippableState > adSkippableState
        • getAdErrorMessage > adErrorMessage
        • getAdVastErrorCode > adVastErrorCode
        • getAdErrorType > adErrorType
        • getAdPodInfo > adPodInfo
        • getAdSkipTimeOffset > adSkipTimeOffset
        • getAdUniversalAdIds > adUniversalAdIds
        • getAdvertiserName > advertiserName
        • getAdSurveyUrl > adSurveyUrl
        • getAdsManager > adsManager
        • getAdID > adID
        • getAdCreativeAdId > adCreativeAdId
        • getAdCreativeId > adCreativeId
        • getAdDealId > adDealId
        • getAdApiFramework > adApiFramework
        • getAdTraffickingParameters > adTraffickingParameters
        • getAdTraffickingParametersString > adTraffickingParametersString
        • getAdWrapperAdIds > adWrapperAdIds
        • getAdWrapperAdSystems > adWrapperAdSystems
        • getAdWrapperCreativeIds > adWrapperCreativeIds
        • getAdErrorCode > adErrorCode
        • getBufferLength > bufferAhead and bufferBehind getters
        • getPlayerVisible > playerVisible getter
      • The following player API methods have been replaced with getters|setters
        • getContentMetadata, setContentMetadata > contentMetadataConfiguration getter|setter
        • getPaused, setPaused > paused getter|setter
        • getControls, setControls > controls getter|setter
        • getControlsVisible, setControlsVisible > controlsVisible getter|setter
        • getVolume, setVolume > volume getter|setter
        • getMute, setMute > mute getter|setter
        • getPlaybackRate, setPlaybackRate > playbackRate getter|setter
        • getCaptionsList, setCaptionsList > captionsList getter|setter
        • getWaitingUI, setWaitingUI > waitingUI getter|setter
        • getCamLat, getCamLon, getCamFov and setCamLatLongFov > cameraView getter|setter
        • getThumbnails, setThumbnails > thumbnails getter|setter
        • getChapters, setChapters > chapters getter|setter
        • getSharingUrl, setSharingUrl, getSharingCode, setSharingCode > sharingData getter|setter
        • getAdUI, setAdUI > adUI getter|setter
        • getBitmovinAnalytics, setBitmovinAnalytics > bitmovinAnalyticsConfiguration getter|setter
        • getGaEventParameters, setGaEventParameters > gaEventParametersConfiguration getter|setter
        • getFloating, setFloating > floatingStatus getter|setter
        • getAudioTracks, setAudioTrack > audioTrack getter|setter
        • getBitrates, setBitrate > quality getter|setter
        • getLoop, setLoop > loopConfiguration getter|setter
        • getShakaCustomRequestFilter, setShakaCustomRequestFilter > shakaCustomRequestFilterConfiguration getter|setter
        • getShakaRequestConfiguration, setShakaRequestConfiguration > shakaRequestFilterConfiguration getter|setter
        • getShakaDrm, setShakaDrm > shakaDrmConfiguration getter|setter
      • The following API methods now return a Promise:
        • init
        • play
        • stop
        • setFullscreen
        • seekTo
        • dvrSeekTo
        • syncToLiveEdge
        • seekToChapter
        • seekToFrame
        • loadAds
        • stopAds
        • skipAd
        • destroy
        • setSrc
        • getStreamMode
        • setRelatedItem
        • setPlaylistItem
        • setRelatedData
        • setPlaylistData
        • setRelatedLoc
        • setPlaylistLoc
        • loadDownload
        • removeDownload
        • download now returns a Promise that resolves if download has been successful or rejects to a warning ErrorData object if not
        • abortDownload now returns a Promise that resolves if download has been successfully aborted or rejects to a warning ErrorData object if not
        • Replaced getDownloadedList API method with listDownloadedContent that returns a Promise that resolves to a DownloadedItem object or rejects to a ErrorData warning object
      • Removed downloadlistavailable API event > use listDownloadedContent Promise result instead
      • Replaced getAutoplayMode API method with getAutoplayResult API method
      • Replaced hasDownloadSupport API method with environment.hasDownloadSupport property
      • Replaced isOnline API method with environment.isOnline property
      • Replaced getPlayerWidth, getPlayerHeight API methods with getPlayerSize API method (returns an object with width and height properties)
      • Replaced getBitrateIndex with quality getter
      • setPlayerSize now only accepts an Object with a width and a height property as an input
      • quality getter now replaces getCurrentBitrateIndex API method (removed)
      • Removed resetCameraView API method - use cameraView setter with values {lat: -1, lon:-1, fov: -1} to reset camera angle to default values
    • Player API - new features
      • Added getAutoplayResult API method that returns a Promise
      • downloadprogress event now has Number progress value as event.data property
      • Added adScheduleConfiguration getter|setter API to allow dynamic update to an ad-schedule (when using adSchedule setting)
      • resize API event now fires only when player actually resizes, not when a resize is requested
    • Playlist
      • New resize mechanism for playlist
      • Replaced getCurrentPlaylistItemIndex with getPlaylistItem API method
      • Replaced isPlaylist API method with getPlaylistData API method (will return [{}] when no playlist is loaded)
      • getPlaylistItem API method now returns Number representing the index of the currently loaded playlist item - use getPlaylistData to get playlist item data Object
      • Removed resetPlaylistItemCallback API method - use setPlaylistItemCallback with a simple function that returns null instead
      • Added getPlaylistLoc and setPlaylistLoc API methods
    • Related
      • Replaced getCurrentRelatedItemIndex with getRelatedItem getter
      • Replaced isRelated API method with getRelatedData getter (will return [{}] when no related is loaded)
      • getRelatedItem API method now returns Number representing the index of the currently loaded related item - use getRelatedData to get related item data Object
      • Removed resetRelatedItemCallback API method - use setRelatedCallback with a simple function that returns null instead
      • Added getRelatedLoc and setRelatedLoc API methods
    • Error management - Breaking Changes
      • Replaced 101, 102 errors with 7** errors
      • Added 8** errors for transcript layout
      • Replaced 1003 warning with 17*** warning
      • Replaced 1004 warning with 1013 warning
      • Replaced 1005 warning with 12000 warning
      • Replaced 1006 warning with 704 error
      • Added 1010, 1011 warning
      • Replaced 1014 warning with 1010 warning
      • Added 1015-1050 warnings
      • Added 3009 warning
      • Added 4003 warning
      • Replaced 700* Google Cast warnings > 1600* warnings
      • 70** warnings are now for playlist/related
      • Replaced 9002-9005 warnings with 800-802 errors
      • Added 10003-10019 warnings
      • Replaced 1200* warnings with setSrc 12000-12004 warnings
    • Google Cast
      • Improved sender user-experience when casting ads
      • Added googleCastAllowSenderVolumeManagement setting and set default to false
    • User interface
      • Added custom scrollbar styling for Firefox
      • Revamped seek-bar thumbnails UI
      • Updated player icons with newer versions of font-awesome and Google Material Icons project
    • Consume less energy mode (a.k.a. eco mode)
      • Refined consumeLessEnergy and capLevelToPlayerSize behaviour when using Shaka player
    • Player Performances
      • Reduced core player build size ~ 10% versus v9
      • Player sizing now supports full precision for player width and height (no more rounding)
      • Improved player module overlay fading in and out
    • Devices support - Breaking Changes
      • Bump minimum Android version support to Android 6+
      • Bump minimum Safari version support to Safari 12+
      • Bump minimum iOS version support to iOS 12+
      • Bump minimum Tizen version support (Samsung TV) to Tizen 4+
      • Bump minimum webOS version support (LG TV) to webOS 4+
      • Removed support for using Radiant Media Player to build Fire TV apps and Android TV apps due to low usage
    • Bug fixes
      • Fixed hlsLevelData getter that could return invalid values
      • adSkipTimeOffset getter now returns -1 when no ad is on stage
      • Guarding against multiple init calls on a single player instance
      • Fixed some potential orientation issues for mobile devices
      • Correctly updated current time on Google Cast receiver player after playing ads
      • Properly ordered navigation for quality/audio/captions control bar icons when using keyboard tab key
      • Fixed "ResizeObserver loop completed with undelivered notifications" non-fatal error that could happen in some edge cases
      • Fixed a bug that could prevent ad markers to show with adSchedule setting when streaming with MPEG-DASH
      • Fixed potential Google Cast failure because getMediaSession would not be available
      • Fixed some navigation issues with tab key when an overlay module is opened
    • Breaking Changes
      • Please review "CSS Flexbox support - Breaking Changes" above section
      • Please review "Player API - Breaking Changes" above section
      • Please review "Error management - Breaking Changes" above section
      • Please review "Logo inclusion - Breaking Changes" above section
      • Please review "Closed captions (externally loaded) - Breaking Changes" above section
      • Please review "Transcripts - Breaking Changes" above section
      • Please review "Devices support - Breaking Changes" above section
      • Removed built-in aync player loading support -> refer to async loading documentation for a new way to achieve aync player loading
      • Removed rmpasyncplayerinstanceavailable API event
      • Removed player module build -> this will be re-added with an upcoming minor release
      • Removed skip button on cast sender player for skippable ads > ads need to be explicitly skipped on TV/receiver now
      • Removed forceInitialVolume setting
      • Removed getCurrentBitrateIndex API method > use quality getter
      • Removed hasDownloadSupport API method > use environment.hasDownloadSupport now
      • Removed isOnline API method > use environment.isOnline now
      • Removed legacy support, forceLegacyDependencies setting and related files
      • Removed Streamroot P2P support as this solution is now obsolete and streamrootConfig setting
      • Replaced forceHlsJSOnIpadOS, forceHlsJSOnMacOSSafari and forceHlsJSOnIos settings with forceHlsJSOnAppleDevicessetting
      • Removed detectViewerLanguage setting - this is now managed internally by player
      • adSchedule.preroll and adSchedule.postroll must now be a string (no more passing Array support)
      • Removed shakaPreferredAudioLanguage and shakaPreferredTextLanguage settings - use audioPreference and subtitlePreference settings
      • Replaced preferredVideoCodecs and preferredVideoHdr settings with videoPreference.videoCodecs and videoPreference.videoHdr - Added videoPreference setting
      • Removed backupSrc setting - use MPEG-DASH Multiple Base URLs or HLS Redundant variant streams instead
      • Removed labels.hint.cast, labels.hint.airplay and labels.hint.pip
      • Removed labels.bitrates property
      • Removed enableFrameNavigation setting - this is now enabled by default
      • Removed ajaxTimeout setting - this is now set internally
      • Removed liveOnResumeKeepSyncWithEdge setting for hls.js > use hls.js custom configuration instead
      • Removed retryParameters.maxTimeout property
      • Removed hlsJSStartLevel, hlsJSDefaultAudioCodec and hlsJSMinAutoBitrate for hls.js - those settings are now automatically set internally
      • Removed shakaStartAtSegmentBoundary, shakaInaccurateManifestTolerance and shakaIgnoreMinBufferTime for Shaka player - those settings are now automatically set internally
      • Removed environment.isModern property
      • Replaced preferSpatialAudio with audioPreference.spatialAudio
      • Removed adparserloaderror API event > use adblock API event instead (included for Google Analytics)
      • Removed getAdParserBlocked API method > use getAdBlock instead
      • Removed startuptimeavailable redundant API event > use firstframe API event instead
      • Removed shakatrackschanged API event
      • Re-named rmp.module.js to rmp.min.mjs file to for better consistency
      • Added warningData getter - warning details can no longer be obtained with errorData getter upon 'warning' event but warningData getter must now be used
      • Replaced shakamanifestparsed and hlsmanifestparsed with universal manifestparsed API event
      • Replaced initialBitrate with initialQuality setting
      • Replaced hlslevelloaded with levelloaded API event (hls.js only)
      • Replaced hlsmanifestloaded with manifestloaded API event (hls.js only)
      • Replaced hlsfragmentbeingplayedchanged with fragmentbeingplayedchanged API event (hls.js only)
      • Replaced hlsfragmentloaded with fragmentloaded API event (hls.js only)
      • Replaced hlsinstancecreated with hlsjsinstancecreated API event (hls.js only)
      • Replaced levelswitching with universal qualitychanging API event
      • Replaced levelswitched with universal qualitychanged API event
      • Replaced audiotrackswitching with universal audiotrackchanging API event
      • Replaced audiotrackswitched with universal audiotrackchanged API event
      • Removed playlist and related API events > use setPlaylistData, setPlaylistLoc and setRelatedData, setRelatedLoc Promise result instead
      • Replaced playlistitem with playlistitemloaded API event
      • Replaced relateditem with relateditemloaded API event
      • Custom icon "off-volume" property is now "volume-off" property
      • Removed "vr" custom icon
      • Replaced autoLowLatencyMode setting with lowLatencyMode setting that needs to be explicitly set
    • Dependencies
      • Updated Shaka player: 4.7.15 -> 4.12.4 for latest bug fixes and features
      • Updated three.js: r141 -> r160 for latest bug fixes and features
      • Updated hls.js: 1.5.17 -> 1.5.18 for latest bug fixes

©2015-2025 Radiant Media Player. All Rights Reserved.