1. Copyright and disclaimer --------------------------- This application is opensource software released under the GPL. Please see source code and the JoomlaRuleZ! License Guidelines http://www.joomlarulez.com/joomlarulez-license.html 2. Changelog ------------ This is a non-exhaustive (but still near complete) changelog for JW Player Module Advanced, including beta and release candidate versions. Our thanks to all those people who've contributed bug reports and code fixes. Legend: * -> Security Fix # -> Bug Fix $ -> Language fix or change + -> Addition ^ -> Change - -> Removed ! -> Note -------------------- JW Player Module Advanced 5.32.0 09 March 2024 ------------------ ! Extension jump directly from 5.30 to 5.32 + Add resume player option, user can quit page and come-back and continue media where he stopped, this feature used cookie. + Add js.cookie.min.js ^ Upgrade to JW Player 8.32.1 + JW 8.32.0 This latest player release ensures continuous visibility of poster images and addresses issues relating to VMAP ad schedule ad breaks and DASH audio selector labels. + JW 8.31.0 adds loadAdTag(), deprecates playAd(), and enhances loadAdXml method. Additionally, various bugs have been addressed. + New Feature Poster and thumbnail images persist until content or ads begin playback. Support has been added for starting ads from VAST payloads with the loadAdXml(). The loadAdTag method replaces the deprecated playAd() . # Bug Fix VMAP schedules using the IMA plug-in play all subsequent playlist items with the expected ad breaks. DASH support now correctly displays labels in the audio selector. The playAd method now correctly triggers adBreakStart and adBreakEnd. Hotspots appear while non-linear ads are displayed. Enabling generateSEOMetadata allows Google to index video key moments in all cases. Custom labels populate correctly in the GA4 plugin. Interactivity no longer causes a black screen for subsequent playlist items. The player displays companion banners containing script tags. -------------------- JW Player Module Advanced 5.30.0 23 December 2023 ------------------ + Support Joomla 5 + Support PHP 8.2 ^ Upgrade to JW Player 8.30.1 + JW 8.30 introduces a new event, adRequestedContentResume, and addresses styled captions on Tizen. + New Feature A new event (adRequestedContentResume) has been added when the ad client requests content playback. # Bug Fix On Tizen, styled captions now display properly. Dependencies now load seamlessly when the player is embedded within a srcdoc attribute. The GA4 configuration value sendEnhancedEvents=true operates without causing type errors. Embedded DASH subtitles display fully and correctly for all streams. The Freewheel configuration's adManagerURL consistently loads the appropriate URL. The skipAdBreak functionality now reliably triggers adSkipped events as expected. -------------------- JW Player Module Advanced 5.29.0 08 October 2023 ------------------ ! Extension jump directly from 4.27 to 4.29 ^ Upgrade to JW Player 8.29.0 With the rollout of JW 8.29.0, we're continuing our journey of enhancing user experience. This release focuses on updating the OMID version and ensuring better accessibility with ARIA labels. We've also deprecated player configurations and addressed a bug concerning caption update intervals. New Features OMID has been upgraded to version 1.4.2. For a more accessible user interface, ARIA labels have been incorporated into the float bar icon. Bug Fix The minimumUpdatePeriod value now consistently dictates the frequency of caption updates in the player. Deprecation The trackerName and useUniversalAnalytics player configurations have been deprecated since Google dropped support for Universal Analytics on 1 July 2023. With the release of JW 8.28.0, new features include adding a showAdMarkers property for ad display control, improvements to playlist filtering (except when doNotTrack is enabled), and new accessibility shortcuts in JWP. Bug fixes address video resizing in Safari and a Freewheel capability flags issue. New Features HLS.js (hlsjs) has been updated to ver. 1.4.10. A new property called showAdMarkers has been added to the timeSlider configuration object, allowing ad markers to be displayed or removing them and introducing a new ad countdown element that appears 5 seconds before a mid-roll (as shown in the release note image above). The source asset has been filtered out of the Recommended playlists. If doNotTrack is enabled in the browser, no filtering occurs. JWP supports new accessibility keyboard shortcuts to increase caption size (+) and decrease caption size (-). Bug Fixes Videos display correctly resized on both desktop and mobile versions of Safari. An issue related to properly adding custom capability flags for Freewheel has been addressed. When using setFloating, the float functionality now works during ad breaks. -------------------- JW Player Module Advanced 5.27.0 25 June 2023 ------------------ ^ Upgrade to JW Player 8.27.2 New Features Both HLS and DASH manifests support #EXT-X-PROGRAM-DATE-TIME. See getAbsolutePosition and absolutePositionReady. Google Analytics 4 is supported. Our chapter bar redesign has been set as the default view. Chapter tracks display correctly when using the duration config option. In-manifest captions appear as intended when the starttime value exceeds 0. The Outstream player has been updated to play audio-only ads. The autopause functionality works when floating is set to never. Caption positioning has been improved. On desktop, the default floating behavior no longer appears at the top right. Floating player will now float up (previously only floats down) in portrait mode on mobile. Picture in Picture (PiP) icon can now appear in the control bar on mobile. Added a new ad macro for video duration named integer-duration that returns an integer. Removed the ability to go fullscreen during an ad with the Freewheel plugin. Updated our HLS.js dependency to version v1.2.9. Updated the logic of autopause to prevent the autopause event from firing when player would go into floating. Updated our player element to use classes instead of IDs in some instances to prevent duplicate IDs in the DOM. Added additional adWarnings when the VMAP schedule is missing schema elements. Updated our CEA 608 positioning to be centered aligned. Enabled the ability to resize the player on Tizen. Investigated and added the aria attribute to wherever it may have been missing. FreeWheel global parameters (afid, sfid, vcid) can now be passed into the ad request through the Freewheel plugin. You can append additional FreeWheel MRM ad server capabilities to the flag parameter and pass them in the ad request through the Freewheel plugin. + add verification is_jwplayer_popup_enabled before Build the iframe for embed code of the pop-up player - Remove stripos of checkvideojoomlarulez # Fix preg_match in jwplayer key with preg_grep # Fix popup modal error with J4, fallback if asked to bootstrap # Fix popup bootstrap error with J4, Bootstrap had introduced a prefix in these data attributes ! Tested with PHP 8.0.15, PHP 8.1.2 and Joomla 4.3.2 -------------------- JW Player Module Advanced 5.26.0 11 November 2022 ------------------ ^ Upgrade to JW Player 8.26.2 + General Improvements Enables Google SEO Optimization with generateSEOMetadata button We have revamped our old Chapter UI to a more modern look. Added better error handling for Buffer Append errors in HLS. Added support for our player plugin code to recognize URL query string parameters/variables. We now expose more metadata from ID3 tags We have updated and refined our UX for the floating player to comply better with Google s policy. Added support for CMAF DRM streams. ^ Updates Updated our Shaka dependency to v4.2.1. Updated our HLS.js dependency to v.1.2.1. -------------------- JW Player Module Advanced 5.25.0 18 May 2022 ------------------ ^ Upgrade to JW Player 8.25.1 Spring Updates + General Improvements We have disabled the poster image for videos that autoplay to help reduce load. We have improved our handling of of text tracks on Dash streams. All text tracks will be selectable now even if they are duplicates. ^ Updates Updated our Shaka dependency to v3.3.2 Updated our HLS.js dependency to v1.1.5 # Fixes Fixed an issue with the recommendation shelf. Fixed an issue with display cues when switching between text tracks that are the same language. Fixed an issue that caused Ad blockers preventing player events from firing. Fixed an issue with some DASH streams not playing on Safari 15.0 and higher Fixed an issue where ad markers where not appearing with the googima client Fixed an issue with the mute button not working correctly while casting. - Removed provider.hlsjs-alt.js. -------------------- JW Player Module Advanced 5.24.0 08 January 2022 ------------------ ^ Upgrade to JW Player 8.24.0 Winter Updates Small enhancements and fixes. 8.24.0 is our final release of 2021. Wishing you a happy year end and see you in 2022! Updates Added support for Google Search's video key moments seekToAction markup. Players with generateSEOMetadata set to true will now have the required fields to enable Google to not only index videos, but also generate chapter markers with AI and surface those in enhanced search results. JW Player is working in partnership with Google to improve organic search traffic for all of our publishers. Added support to automatically seek to and start a video on a specific time with the jw_start url query parameter. The parameter takes a number, in seconds. For example https://www.jwplayer.com/?jw_start=20 will start the 1 minute 3 second video on our home page at the 20 second mark. Updated the HLS.js dependency to v1.0.12. Extended playlist.onXhrOpen configuration to support DASH streams. Improved image size decisioning for JW Platform streams. When the player loads an image, whether it's a poster image or thumbnail, it now uses the closest available image size rather than one fixed size across the board. This will improve data transfer as well as user experience. Fixes Fixed an issue with the Freewheel ad client where custom key value pairs weren't being sent in the ad request as expected. Fixed an issue where the embed url defined in the SEO video object was invalid for JW Platform streams. Fixed a bug causing the HTML page URL to be requested multiple times when casting. Fixed a bug occurring during live streams where the About This Video modal cannot be closed and a console error is thrown. Fixed an issue where embedded TTML captions in MPEG-DASH live streams were not displaying as expected. Fixed an issue where some DASH audio tracks were labeled with only a two-letter ISO code instead of the full English name. - Removed kraken.js, kraken-dnt.js, googimanvmp.js. -------------------- JW Player Module Advanced 5.23.0 11 November 2021 ------------------ ^ Upgrade to JW Player 8.23.1 AMP Component Customization AMP Component Customization We have been thrilled by your positive feedback about and increased usage of our JW Player AMP component since we last released major updates to it in player version 8.15.0 in June 2020, when we added support for common video attributes and compatibility with other AMP components. Developers have historically been limited by what they could customize within the AMP framework since it restricts third-party vendors and scripts to loading inside of iframes. This release helps developers achieve parity with on-page Javascript embeds by adding support for new attributes in AMP that enable extensive customization. Whether you want to append ad tags with page metadata, customize the player controls with CSS, or inject a full setup configuration using JSON, our AMP component now comes with out of the box support to create the player you need. We also added compatibility with the amp-consent component. To learn more, check out our documentation on amp.dev AMP Component Updates Updated our amp-jwplayer documentation on amp.dev including all the attributes mentioned in the release notes. To the amp-jwplayer component, added support for a new attribute, data-config-json, which accepts a full JSON configuration using any key values listed in the web player configuration reference, with the exception of media, which should use the media ID or playlist ID attribute, and the floating player, which should use the amp-video-docking component and the dock attribute on the player element. Added support for appending the iframe source url before player setup, to support token signing for example, with new attributes data-player-param-* and data-player-querystring. Added an attribute, data-ad-cust-params, which supports a JSON string of custom parameters that will be appended to the end of an ad tag on ad request. Added an attribute, data-config-skin-url, which accepts a url to an externally-hosted CSS file that will be loaded inside of the iframe, and can be used to target JW Player elements. You can also load this file as skin.url in your JSON setup configuration using data-config-json. See our documentation on how to create your own CSS file. Added an attribute, data-config-plugin-url, which accepts a url to an externally-hosted Javascript file that will be loaded inside of the iframe, and can be used to apply custom Javascript to the player. Added support for populating ad tag macros in AMP with a new attribute, data-ad-macro-*. The following macros are supported: An attribute used to override the default value of macros in ad tags. Supported macros include: domain, referrer,page-url, item-{custparam}, and item-{custparam}-list. For example, setting data-ad-macro-domain=jwplayer.com would ensure the requested ad tag populates the domain parameter with the defined page url. See our ad tag macro documentation for more information. In AMP, added support for the amp-consent component, which a way for publishers to collect and store user s consent through a UI and is a way to block AMP components based on the user’s consent. Added a new attribute, data-block-on-consent, which if set blocks the player from loading until the consent state is resolved. The consent data will then be passed to the player's iframe as query parameters for use with advertising implementations. See the amp-consent blocking behaviors documentation for possible values that this attribute accepts. Fixed an issue in amp-jwplayer where play events erroneously fired when an ad played. Remove existing logic which was manually sending additional pause events during ads with AMP, which are no longer needed. General Improvements Added the aria-expanded attribute to the settings menu button to improve accessibility. When hovering over the timeline where there are chapter markers, the chapter s name and the current time will always be shown. For accessibility, added aria-expanded attributes to the buttons in the captions styling submenu. Improved the experience for mp4 videos under 90 seconds that are single items so that when set to repeat, the looping is seamless. -------------------- JW Player Module Advanced 5.22.0 25 September 2021 ------------------ ^ Upgrade to JW Player 8.22.2 Summer Updates We continue to iterate on the web player based on your feedback. We are making some small scale updates and fixes for the summer in 8.22 while we gear up for bigger releases, like a planned expansion of the parameters we support in our Google AMP component. Updates Updated our Shaka dependency to 3.2 Added 15+ new 246xxx error codes related to DASH DRM failures. In the VAST client, we now define the creative type as video when making ad requests with OMID-enabled players, which should improve measurement accuracy. Improved settings menu ARIA labeling for accessibility by removing the ariahaspopup attribute and changing the role attribute on many elements to better suit the screen reader experience. Improved accessibility of the seek slider by adding the aria-valuenow attribute and ensuring the current time is read aloud by screen readers for both VOD and live streams. Updated the About This Video modal (accessible via the right click menu) to include stats for nerds, including information about the stream including media ID, buffer health, resolution, and more. Configuration: Added a new configuration option, allowFullscreen, which defaults to true. When set to false, fullscreen functionality is completely disabled in the player including tapping, clicking, keyboard shortcuts, and API access. Javascript events: Added a new method, setAllowFullscreen, which through updating the boolean, disables or re-enables the above fullscreen behavior. Updated the Freewheel Ad Manager SDK dependency to v6.43. Improved player and page security by whitelisting allowed HTML markup elements that may render in media title and description fields; links, scripts, and Javascript functions are no longer rendered. -------------------- JW Player Module Advanced 5.21.0 21 August 2021 ------------------ + Support and tested with Joomla 4 ^ Upgrade to JW Player 8.21.2 Picture in Picture Picture in picture minimizes videos to a corner of the screen, allowing you to multitask in any other app or browser tab. Picture in Picture, or PiP, as it s often shortened to, works at the operating system level, as compared to our floating player, which only minimizes to a corner of the current browser tab and is not viewable when backgrounded. We have added out of the box support across Chrome and Safari on desktop and mobile devices. New Features Added support for playback in Picture in Picture mode across all supported browsers, including ads, captions, and playlists. Firefox and Internet Explorer do not support this feature. Configuration: Added a new configuration option, pipIcon, which defaults to enabled and adds a Picture in Picture icon and right click menu options to supported desktop browsers only. Setting this option to disabled will remove this icon, which you can also hide with CSS. On mobile devices, we have elected not to add an icon to our controls, but rather, PiP can be enabled through the operating system s native gestures and user interface on both iOS and Android. Added automatic localization support for the Picture in Picture icon tooltip and right click menu option across all supported languages, which can also be customized via the intl block with pipIcon. Javascript API: added a new event, adLoadedXML, which fires when the VAST ad client loads an ad tag. The response contains the same object properties as other ad events, such as adBreakId, adPlayId, adPosition, client, tag, etc, as well as an XML parameter that exposes the XML downloaded from the tag. Improved recovery of live DASH streams that buffer infinitely by implementing segment timeouts. # Fix allowedOmidVendors configuration option. # Fix omidSupport configuration option. -------------------- JW Player Module Advanced 5.20.0 05 April 2021 ------------------ ^ Upgrade to JW Player 8.20.1 OMID Ads in VAST Pioneered by the Interactive Advertising Bureau, the Open Measurement standard for video on the web is a giant leap forward in reducing the dependency on VPAID ads for viewability measurement. Open Measurement gives publishers transparency and control to manage the third-party verification scripts rather than running them through the ad creatives themselves, where they cannot be accessed. Our 8.20.0 release brings out of the box OMID-compliant XML support for this industry-wide specification through our VAST ad client. Google is expecting to include full OMID support soon, which will be available through our Google IMA client as soon as it s available. Updates Added support for OMID ads in the VAST client. No configuration is required; the player automatically handles verification when the XML is returned. To the VAST client, added the adVerifications node to the adImpression event response, which returns the parsed content of that element in an object. Added a new configuration option to the advertising object, allowedOmidVendors, which accepts an array and is supported in the VAST client. If not set or set as an empty array, all vendors can run. If set, only the resources from the listed vendors can run. All failures to run verification will be noted accordingly to the ad server. Improved stalling when there is significant drift from the edge of live streams. -------------------- JW Player Plugin Module 5.19.0 26 February 2021 ------------------ ^ Upgrade to JW Player 8.19.0 Apple Low Latency HLS Support At last, streaming live video no longer sacrifices latency, or the delay between a moment captured on camera to when it is displayed to viewers. In 2020, Apple, which developed the HLS format, amended its spec and added support for low latency in Safari across devices, and since then, the JW Player team has worked ceaselessly to bridge support across other browsers through our open-source maintainership of hlsjs. We are excited to announce full, out of the box support for LL-HLS support in 8.19.0. Updates Core Player Removed support for Flash, which was deprecated by Adobe on December 31, 2020. Added out of the box support for low latency HLS streams, including partials, automatic playback rate adjustment, hold back, and part hold back. The player automatically detects low latency streams and goes into that mode with no additional configuration required. Added support for low latency in JW Live Channels streams. Added support for IMSC1 captions in HLS streams. Added markup to discourage Google from displaying player error messages in search result snippets. Removed a default value for liveSyncDuration. The player will no longer add a default of 25 to item sources. Improved automatic latency defaults by starting HLS live streams with a latency based on the streams TARGET-DURATION or HOLD-BACK, in accordance with the HLS spec. This can still be overridden in browsers other than Safari by configuring liveSyncDuration, which used to default to 25 seconds. Added duration, currentTime, seekRange, and metadata.currentTime to the seek event response. Added targetLatency to time events. When playing live streams, the player will adjust playbackRate to meet the latency target. Improved stream type detection for Yospace streams, which often contain query string parameters after the file extension. Reduced fatal player errors caused by user agents represented as Safari that are really Chrome. Added a new configuration option, horizontalVolumeSlider, that when optionally set to true, makes the volume slider appear horizontally, below the scroll bar, instead of above it. New Features Added a new configuration option to the advertising block, adTagParameters, an object, which supports custom parameter key value pairs with the DAI ad client. Added a new configuration option to the advertising block, ppid, which can be used with the Google IMA client to pass a publisher provided id to the IMA SDK. Added fallback support for Norwegian automated player translation. In addition to no, which is already supported, the player will now recognize html tag lang attributes of nn or nb as Norwegian as well. To customize text, please use the no object inside of the internationalization block regardless of which code is used in the page s lang attribute. Known Issues Due to a bug in 8.17.0+ affecting some player bidding customers, we will not update the biannual player release channel on its scheduled February 3 date. Instead, we will update it off schedule, on or before 8.20.0 in March. We apologize for any inconvenience. Removed files from JW player media directory - jwplayer.flash.swf - provider.flash.js - provider.hlsjs-progressive.js - jwplayer.vr.js -------------------- JW Player Module Advanced 5.18.0 11 November 2020 ------------------ ^ Upgrade to JW Player 8.18.0 2018+ Tizen Support Beta The future of TV viewership is OTT, and along with our comprehensive app offering, we are re excited to announce beta support for embedding video players in Tizen apps on 2018+ Samsung smart TVs. Tizen is a web-based platform that is already capturing significant market share worldwide. Our beta offering works out of the box on these devices using the same web player library and setup configuration you know and love. Updates Added support for Tizen on 2018+ Samsung smart TVs. Created a Tizen demo app to showcase our initial 2018+ beta support of this platform. Added a new method, jwplayer().stopCasting(), which can be called to stop a casting session on a Chromecast device. Added a new method, getPercentViewable, which takes no arguments and returns the visibility attribute from the player s model. Added support for DRM robustness. To configure the player to use this feature, specify videoRobustness and/or audioRobustness in the playlist item source in the Widevine, Playready and Clearkey object within the DRM block. Deprecations Removed support for rendering 360/VR videos across all devices and streaming providers due to underutilization. The player will no longer recognize or render 360 videos as expected, though the videos will still play. -------------------- JW Player Module Advanced 5.17.0 26 September 2020 ------------------ ^ Upgrade to JW Player 8.17.0 Floating API Few features have been as big of a sensation among our customers as the floating player, a configuration option released in 8.8.0. Ad viewability rates and view engagement increase when the player remains in view as a viewer scrolls, and can be enabled with the click of a button in the player builder in our dashboard or configured with a single line with JSON in the setup block. Over the past year, you’ve shared ideas for other floating experiences including: when the page first loads, when the viewer reaches a certain point in an article, or on interaction (i.e.with a button). So, we have taken that feedback to create a new API to start and stop floating on command in 8.17.0. Updates Added a method, setFloating(), which starts and stops the player from floating, and getFloating(), which returns the current floating status. Added a new configuration option in the floating object, mode, which defaults to notVisible, which is current behavior for floating when the original container would be out of view. always can be used to start floating and never stop unless updated with the API, and never can be used to not float, unless updated by API. Made some big improvements to the way we do scheduling in the Google IMA client: We now make ad request for each ad break, rather than creating a VMAP for the entire schedule for each playlist item. The adRequest event has been changed to fire each time we make ad request to IMA SDK. Added a new adLoaded event, which fires when IMA's LOADED event fires. Deprecated the ability to use the playlistItem event to update an ad schedule. By the time that event fires, the schedule for the playlist item has already been created, so the change does not have an effect. Please use setPlaylistItemCallback to properly update the ad schedule. Improved the message read aloud by a screen reader when the keyboard shortcuts toggle is selected. Added the name of the menu the user will go back to if they leave a captions styling menu when using a screen reader. -------------------- JW Player Module Advanced 5.16.0 14 July 2020 ------------------ ^ Upgrade to JW Player 8.16.0 Emsg metadata in MPEG-DASH streams, Our metadata API events allow developers to listen for timed metadata embedded in the media file to signal the start and stop of an ad. This release adds support for parsing Event Message box events, or esmg, which carries ID3 metadata, often used in DASH streams. Updates Added support for triggering the on(meta) and on(metadataCueParsed) methods based on in-band emsg timed metadata. ^ Upgrade to JW Player 8.15.0, Connecting AMP Components Google s Accelerated Mobile Pages (AMP) have become ubiquitous for digital publishers, which is why we are excited to release AMP improvements in JW 8.15 and to our official AMP component, amp-jwplayer. AMP is an open source HTML-based web component framework that enables media companies to easily create web pages that are compelling, smooth, and load near instantaneously. Developers will find that amp-jwplayer is now compatible with other AMP components, including amp-analytics, which allows video player data to be sent to any supported analytics platform, and amp-video-docking, which allows the player to stick to the page. Updates The VAST ad client, added support for the jwpseg macro from within VAST tags contained within a wrapper. Improved playback resilience and error handling with some bad VPAID ad creatives. Improved compatibility with the AMP framework and quality assurance capabilities of our amp-jwplayer component. To supplement documentation we maintain on amp.dev, we created JW Player developer documentation on embedding an AMP player and working with AMP analytics. Added a configuration option, playlistIndex, which enables a playlist to be loaded and start playback from any item within it, not just the first. The default of this option is a 0 index. -------------------- JW Player Module Advanced 5.14.0 13 May 2020 ------------------ ^ Upgrade to JW Player 8.14.0, Service Release We are looking forward to updates later this year where we will be improving our Google AMP component and adding Samsung TV app support. In the meantime, this minor release contains under the hood service improvements, as well as small updates and bug fixes to ensure the player is the best it can be. Updates Core Player Added a new property, cueType, to the addCues event, which adds a custom CSS class that can be used for additional cue styling in the format of .jw-cue-type-{cueType}. Added a new CSS class .jw-cue-type-ads to ad cues so they can be styled separately from other cues, such as chapter markers. Added support for 608 caption track names defined in the parent manifest via #EXT-X-MEDIA:TYPE=CLOSED-CAPTIONS tags. Advertising To the VAST client, added support for the VAST 4.1 viewableImpression node, which adds a tracking pixel to the page when the adImpression event fires based on whether the ad is viewable at that time. -------------------- JW Player Module Advanced 5.13.0 11 April 2020 ------------------ ^ Upgrade to JW Player 8.13.3, Player Bidding Powered by Prebid.js JW 8.13 includes a major technical upgrade to our Video Player Bidding (VPB), with the goal of maximizing your total ad yield in mind. This release introduces the use of Prebid.js,—considered the gold-standard in header-bidding frameworks,—to conduct client-side auctions. Its broad support in the ad-tech ecosystem and JW Player s investment in contributing to the open source project will enable exciting new features in the coming months. Our Prebid-powered player bidding solution will also increase demand through the support of additional monetization partners and bring new insights into the advertisers buying your inventory. Core Player Extended the Javascript API to allow for asynchronous blocking between playlist items. Loading, preloading, ads, and playback of the next playlist item can be blocked until async operation, wrapped in a promise, resolves. Exposed metadataCueParsed events in Safari when ID3 tags are parsed. Reduced total player library size by 9.4%. Added support to load and parse HLS manifest metadata in Safari when an HLS stream contains #EXT-X-PROGRAM-DATE-TIME tags. Added a new boolean configuration option, loadAndParseHlsMetadata, which can be set to false to disable metadata parsing in Safari, which will lower manifest requests. Increased the number of seconds before a video completes where the next playlist item s content begins to load from two to five in order to better accommodate asynchronous operations and reduce rebuffering. Advertising Enabled Prebid.js to power client side auctions and migrated existing JW Video Player Bidding demand partners to use Prebid s adapters. Created a new event, adWarning in the VAST plugin, which fires when a non-fatal ad error occurs that does not prevent fill. Created warning 70001 for VAST error code 1002, which occurs when a VMAP does not contain tracking events for the ad break. Added a new boolean configuration option, withCredentials to the advertising block, which when set to false will make just one ad call, one without credentials. By default, this option is set to true, which explicitly makes ad requests with credentials. Added support to prioritize ad schedules configured within an individual playlist item over any other ad schedule in Google IMA and Freewheel. Added Video Player Bidding support for Index Exchange. Reduced human error in setting up player bidding on the client side by making the accepted values in advertising.bidders case insensitive. Added case insensitivity to directional AdChoices logo positioning values (top, right, left, bottom) coming from ad responses. Before, incorrect casing would always result in a top-left positioned AdChoices logo. -------------------- JW Player Module Advanced 5.12.0 01 February 2020 ------------------ ^ Upgrade to JW Player 8.12.4, Captions Styling JW Player is committed to ensuring your videos are accessible to all of your visitors. We are invested in inclusive practices that comply with laws and standards such as the Web Content Accessibility Guidelines (WCAG). Our web player is accessible by keyboard and screen reader, and supports and renders all popular captions formats. JW Player 8.12 continues this commitment with an out of the box interface for end-users to style captions directly within the player s settings menu. Laws in the United States mandate that certain content providers, such as broadcasters, include captions with all of their videos. Prior to this release, our captions API made it possible to custom build a styler on top of the player, but 8.12 offers a fully supported replacement that saves you time spent building and maintaining your own. We expose all nine FCC compliant attributes and values. Each video consumer can customize the look of captions to suit their visual needs including colors, size, and characters through font choices and edge style. Plus, this feature works out of the box on all players, so no configuration is required! It styles all captions formats, as well as subtitles. This menu is automatically available on all desktop devices whenever captions are part of the media. It will be hidden on tablets and phones, where captions styled are inherited from the user s device, which also provides a captions styling interface. Core Player Added support for viewers to change the way captions are styled from within the settings menu on desktop devices. Automated player translation support for all of the new text introduced in the menus and options will be available in 8.12.2. Added a new configuration option, liveSyncDuration, for live HLS streams, which enables players to attempt to start live streams at a specified latency target between 5-30 seconds instead of the default 25 seconds. This value also affects where the live button seeks to when behind the edge. Reduced 232403 errors caused by loading stale levels that return a status 403 in JW Player-hosted HLS streams. Advertising Added VAST 4.1 compliant support for the advertiser node in ad tags in both the VAST and Google IMA plugins. Added an available -list suffix to our playlist item-level macros that will result in the macro replacement not URI encoding commas. Added a new ad rule in the VAST plugin, deferAds, which does not play ads whenever a player is playing in an inactive tab, and resumes on the last unplayed ad when the tab becomes active again. Learn how to configure this rule in our documentation. Improved creative selection in the VAST by using bandwidth estimation to choose a rendition with the most appropriate bitrate when there are multiple options with the same dimensions. Improved creative selection in the Google IMA plugin by passing bandwidth estimation to the ads manager. Added support for playlist-level configuration of Freewheel where the freewheel object can now be nested within an individual playlist item object. Added localization support and automated translations for all text in the captions styling menu (26 new fields in all). -------------------- JW Player Module Advanced 5.11.0 21 October 2019 ------------------ ^ Upgrade to JW Player 8.11.4, VAST 4.1 Macro Support JW 8.11 features five new ad tracking pixel macros supported in VAST 4.1. These macros are designed to provide more information about the ad play to the ad server, ranging from GDPR consent to the page url. Web player support for Open Measurement via the verification node is still under development by the IAB and will be implemented once available. Core Player Improved accessibility on iOS in Safari by inheriting all captions styles set on the device. Added automated translation support for Greek. Added internationalization support for all fields in the keyboard shortcuts menu released in JW8.8.0, as well as automated translations for all 24 supported languages. Improved float on scroll behavior on mobile so that the player sticks to the top when it reaches that position, rather than first scrolling out of view and popping back into place. With this change, the float on scroll feature is truly float on scroll on desktop, but more accurately behaves as sticky on mobile. Advertising In VAST, added support for the [DEVICEUA] tracking pixel or __device-ua__ in the ad tag, which sends the user s device agent. Also added the ad tag support in Google IMA. In VAST, added support for the [PAGEURL] tracking pixel, which sends the page where the ad is intended to play. in VAST, added support for the [REGULATIONS] and [GDPRCONSENT] macros, which tell the ad server if GDPR regulations are being used and if consent has been granted, respectively. IN VAST, added support for the [ADSERVINGID] macro, which adds the AdServingId value to the tracking pixel, which is parsed from the AdServingId node. # Ad Placement Type missing in backend. -------------------- JW Player Module Advanced 5.10.0 15 September 2019 ------------------ ^ Upgrade to JW Player 8.10.3, Minor Enhancements Your feedback has been invaluable as we continue to enhance the player. With 8.10, we are making small scale updates and fixes such as adding aspect ratio to the setConfig API and an option to also pause ads with our autopause video feature. Core Player Added support for updating aspectratio, width, height, and stretching configuration options via the setConfig() API. Advertising Added support for Ad Placement Type (placement). The options are: article, banner, feed, floating, interstitial, slider, or instream. By default, the player will set instream players to instream and outstream players to article. These defaults can be overridden to reflect the appropriate placement type. Added the ability to autopause ads based on player viewability by setting pauseAds: true in the autoPause block. Added support for displaying VAST icons contained in ad tags. Added support for calling jwplayer().skipAd() with VPAID ads. -------------------- JW Player Module Advanced 5.9.0 22 June 2019 ------------------ ^ Upgrade to JW Player 8.9.2, VAST Ad Pods If you are one of the 50% of our customers using our VAST plugin to deliver ads, you already know that it is faster and more customizable than the IMA plugin, which relies on Google s SDK. JW 8.9 introduces an added benefit of using our VAST plugin: ad pods. Ad pods play a sequence of ads in a single ad break. As of this release, you can configure an ad break with a separate ad tag for each ad in the pod through a custom setup configuration without going through your ad manager. Error events fire on a per ad basis instead of one per ad break. 8.9 also includes support for the GDPR ad tag macro, as well as some user interface improvements to the control bar and playlist overlays, which are detailed below. Core Player Extended all of the playlist user interface configuration options in the related block to work for all playlists (not just those of the JW Player Recommendations product). Added a displayMode option, none, which removes a playlist interface during playback. This option is ideal if you have created your own playlist widget or interface outside of the player, since having a duplicate inside the player container is redundant. The next video button remains, and the playlist overlay that appears in between videos is configured separately, via related.oncomplete. Added a new option to related.complete, none, which automatically advances the video to the next item in the playlist without showing an overlay in between. This is also now the default value and was already the behavior for all manual playlists. Improved responsiveness of player so that it is resized whenever its parent container is resized. Increased the size of the user interface when a player is larger than 1280px wide (breakpoint 7). Decreased the number of icons in the user interface when a player is smaller than 320px wide and added a new breakpoint (-1) to support it. Added support for Program-Date-Time metadata in Safari, making this the preferred method for SSAI and live streaming implementations across all browsers. Removed Google+ sharing support due to the shutdown of that product. Added support for sending events to Google Analytics custom trackers. Added automatic player localization support for Occitan and Slovenian. Made the tabbing behavior in and out of the volume slider consistent to improve accessibility. Improved auto pause behavior so that it is consistent across devices. Added the ability to configure nextupoffset to display the next up overlay at a specified percent of the way through the video, rather than at a fixed number of seconds from the beginning or end of the video. Improved float-on-scroll responsiveness with more precise player visibility detection. Added a next up notification to small players. Advertising Added support to pass a GDPR macro in an ad tag using either the VAST or IMA plugin. Added support for ad pods in an ad schedule using our VAST plugin. When an ad schedule is configured with an array of breaks that all contain the same offset, the player will automatically create a pod and play the ads in succession before returning to the content. Each ad in the pod may have a separate ad tag, and events such as errors will fire separately for each ad. In the VAST plugin, filtered out 3gpp creatives due to lack of codec support in some environments. Fixed an issue in the IMA plugin where programmatically calling skipAd before an ad becomes skippable would not skip the ad, but cause the media to start playing in the background. Updated the following Ad Error codes to better reflect the root causes of the error: 60004 is now 10402 (Creative timeout) 60001 is now 10303 (No ads response) 50004 is now 51901 (VPAID general error) 234003 is now 10405 (Request for MP4 creative returns a 404) 242404 is now 10403 (Request for HLS creative returns a 404) -------------------- JW Player Module Advanced 5.8.0 17 April 2019 ------------------ ^ Upgrade to JW Player 8.8.2, Viewability Features In the industry, a video player that is at least 50% in view on the screen for greater than two seconds is considered viewable. Viewability is a key signal of engagement, which is why it has become the gold standard for publishers and advertisers alike. JW 8.8.0 introduces the floating player, which minimizes itself to the bottom right corner of the screen when a viewer scrolls the player out of view. It ensures nearly 100% viewability and can be easily dismissed back to its original position. Another way to increase average viewability is by automatically pausing the video when the player is out of view. Our auto pause feature can help you do just that. Both of these features are available with as little as one line of code.. Also new in JW 8.8.0 is support for the CMAF standard, as well as using our recommendations interfaces (known as the shelf and shelf widget) on any playlist, and six new languages for automatic localization. Core Player Made security improvements to input handling. Added a tooltip over the play and pause icons to improve accessibility. Added a new object, floating, which keeps the player visible when the original player location is scrolled out of view by minimizing it to the bottom right corner of the screen (and the top of the page in portrait mode on small screens). Viewers cannot hide the floating player and send it back to its original location when floating.dismissible is set to false. Learn more about floating in our documentation. Removed a previously undocumented configuration option, floatOnScroll, which was available for a beta version of the floating player. Please use the new floating block above. Added the ability for the viewer to drag and reposition the floating player anywhere on the screen. Dragging is disabled during ad playback. Added a new object, autoPause, which automatically pauses the video when less than 50% in view, including when the player is no longer in the active tab. Learn more about autopause in our documentation. Added support for CMAF format streams across all browsers. Improved handling of relative protocol urls so that JW Player hosted protocol-relative playlist urls can play when accessing a webview that has js embed with file:// protocol. Only jwplatform playlist urls starting with // are changed to be loaded over https. URLs for other domains or for ad tags must be fully resolved in the setup configuration. Improved the user experience by retaining the paused state after a viewer seeks while paused. Developers who have worked around this in the past by calling pause() on seek no longer need to use the API, but anyone who wishes to resume playback automatically after a seek event now must call play(). Improved clarity by hiding the settings menu gear icon in the control bar if the only submenu option is also a shortcut icon in the control bar, which applies to sharing and captions. Added a volume slider to control bar only players, which is used to play audio. Setting a player s height to 42px automatically puts the player into control bar only mode. Added a reference dialog for keyboard shortcuts within the player, which can be accessed via the right click menu or evoked by pressing SHIFT+?. Added support for all playlists to use our recommendations user interfaces by setting related.displayMode to shelf or shelfWidget. Read more about this option in the configuration reference. The default interface for playlists that are not generated through our recommendations product remains as overlay. Removed the localization option, playlist, which localized the tooltip text, overlay heading, and aria-label HTML attribute of a playlist overlay. To customize this text, please use related.heading within the intl block. Added a shortcut to sharing in the right click menu. Added automatic localization support for six new languages: Russian, Indonesian, Korean, Thai, Vietnamese, and Finnish. Check our support article for a full list of the 21 supported languages and to submit a request for additional languages. Improved the casting experience by starting a casted DVR stream at the live edge instead of at the beginning of the stream. Improved ads accessibility by not fading controls when using the keyboard to navigate and ensuring the skip button is in the correct tab order from left to right. Note that due to third-party limitations, ads rendered in iframes and through the Google IMA plugin may not be accessible. Added a new error code, 102007 (ERROR_XHR_FILE_PROTOCOL), which fires when a player fails to set up on a page that is using the file:// protocol. Advertising Added inner error details to Google IMA 901 General VPAID Error errors. Deprecated the on(adManager) event for Google IMA and Freewheel, which fires when the ad manager is loaded. on(adsManager), with an s, should be used instead. # Fix default botr variable missing in pop-up mode -------------------- JW Player Module Advanced 5.7.0 29 December 2018 ------------------ ^ Upgrade to JW Player 8.7.0, SCTE-35 Support SCTE-35 is a form of metadata, similar to the ID3 tagging system applied to streaming media, that broadcasters have been using for years for traditional broadcast television, and now, web streams. Like ID3 metadata tags, SCTE-35 markers can be added to an HTTP Live Streaming (HLS) manifest to provide contextual and temporal metadata. In JW 8.7, the player exposes SCTE-35 CUE-OUT and CUE-IN points, as well as DATERANGE tags to indicate when there are breaks in your live stream. Core Player Added a new property to meta events, metadataType, which indicates the type of metadata available in the event. Possible values are: media, program-date-time, id3, date-range, scte-35, and unknown. Added a new event metadataCueParsed which is triggered once the metadata cue point is buffered. Exposed CUE-OUT, CUE-IN, and DATERANGE SCTE-35 metadata tags that are parsed in an HLS manifest. When a metadata tag becomes active, the following SCTE-35 meta events are fired: #EXT-X-DATERANGE, #EXT-X-CUE-OUT, and #EXT-X-CUE-IN. Improved handling of cross-origin 360/VR videos in Chrome 70 and Safari 12 so that instead of displaying a blank screen, the player errors with a new 307012 code. Localization Added automated localization support for Hebrew. Added new localization options and updated all automated localization files to include translations for Mute, Unmute, and Exit Fullscreen icon tooltip texts and ARIA labels. Changed the default English localization text for slider from Seek Slider to Seek to reduce screen reader redundancy. Improved readability, punctuation, and string concatenation for all right-to-left languages, including Arabic and Hebrew. Accessibility Added screen reader support to announce the video position changes when using the left and right arrow keyboard shortcuts while not focused on the timeline element. Added screen reader support to announce volume changes when using the up and down arrow keyboard shortcuts while not focused on the volume slider element. Improved volume keyboard accessibility by separating the mute icon from the volume slider. Now, when a user tabs to the mute icon, hitting enter will mute or unmute the player. Tabbing out of the mute icon, the volume slider will appear and can be controlled. Tabbing out of the volume slider will hide the slider and move focus to the next focusable icon. Fixed a bug causing the volume slider to be read as a left-right slider when it is actually an up-down slider. Added a blue focus ring that appears around any focused element when accessed by keyboard, which improves focus visibility. Advertising Improved ad rendition selection in Freewheel by passing the player s bitrate estimate to the AdsManager. Added a new bidding configuration option, no_vpaid_ads to the optionalParams object, which restricts VPAIDs and only serves mp4 ads with no SpotX VPAID wrapper. Added pause reasons to the response for on(adPause) in the VAST, IMA, and Freewheel clients. Ungated VAST 4.1 tags, enabling ad tags marked with the latest VAST version to play. VAST 4.1 features that are not yet supported in JW Player will be ignored. Added (automated localization)[https://support.jwplayer.com/articles/translate-video-player-text] of all Google IMA text to match the player s language. Developers may also declare a two-letter ISO language in advertising.locale. JW8 language advertising.SetLocale change to advertising.locale, for JW7 you can still used SetLocale in backend extra plugin parameters. + Continued Support Joomla 4 as beta. Fix addscript loading jwbox.js. + Support PHP 7.2 and 7.3. + Now compatible with JWPlatform without extra fee. ^ Change layout backend sub menu, HLS, RTMP and HTPP streaming group in one sub-menu. -------------------- JW Player Module Advanced 5.6.0 04 November 2018 ------------------ ^ Upgrade to JW Player 8.6.2 Automated Player Translations JW Player wants to save you time and improve the viewer experience out of the box with our latest feature, automated player localization. Did you know that our video player contains over 50 customizable tooltips, labels for menus and overlays, and ARIA labels (for accessibility viewers who use screen readers)? Previously, you had to customize these fields in order to provide a better viewing experience on non-English language sites. It is time consuming to translate the player, so we have done the work for you so that your viewers can benefit today. Beginning with 8.6, the player will automatically translate those fields to match the language on your website. We have included support for 14 languages and will add more by request. Enjoy a seamless experience that increases clarity and engagement for all of your viewers. Core Player Increased contrast ratio of the quality level label when Auto is selected. Changed focus behavior so that focus remains on the fullscreen icon when entering and exiting fullscreen. Improved responsive scaling of the shelf widget when using the selector configuration option to decouple the width of the player from the width of the widget. Added more granular DASH and HLS playback error codes. Added specific error codes for cases where an attempt to start playback fails. Reduced player setup errors by extending the setup timeout from 30 to 60 seconds. Created a new warning event that displays messages in the developer console, alerting developers of non-fatal errors.. Note: Documentation updates about these changes are coming soon. Updated the name of the Chromecast button component from button to google-cast-launcher to reflect (changes made by Google)[https://developers.google.com/cast/docs/chrome_sender_integrate#cast_button] to be compatible with React. Added a new configuration option, displayPlaybackLabel, which adds click-to-play call to action text below the play icon on the idle screen. Testing has shown a 3-5percent lift in clicks to play with this feature enabled. The default text is Play and it can be customized or translated in the intl block with the playback option. Rotating an Android device with a control-bar only (audio) player or when controls are disabled will not cause the player to go into fullscreen mode. dded non-fatal, console-logged warning events and error codes. See our Errors Reference for updates. Added a new div, which wraps the player s existing DOM structure, in order to make way for upcoming features. Localization For more information on the release note below, please see the Configuration Reference and the support article on how to translate player text with automated player localization. Added support for players to automatically translate tooltips, ARIA labels, and headings into 14 different languages, based on the language attribute declared in the HTML tag on the page. If the lang attribute is not present, the viewer s browser language will be used, and a translation will still be provided if available. For a full list of languages supported and to request support for another language, please see the support article. https://support.jwplayer.com/articles/translate-video-player-text Introduced a new object, the intl block, which accepts an array of objects of ISO language codes. Each language object accepts all the localization strings previously used in localization. Going forward, developers are encouraged to use the intl block so that a single player can be used across pages localized in any language. Added 12 new localizable strings, which includes link, auto, off and more, as well as updated the default values for a few existing strings. All hard-coded strings are now mapped to localizable strings. Moved the following fields into the intl block so that they can be localized by language: abouttext, advertising.admessage, advertising.cuetext, advertising.loadingAd, advertising.podmessage, advertising.skipmessage, advertising.skiptext, related.autoplaymessage, sharing.heading. These fields will be backward compatible with their original locations, but will not take advantage of the automated player localization features for those fields. All fields should be nested in the intl block as written. Moved localization.related to related.heading within the intl block. In a localization context, related is now an object nested inside the intl block. Advertising Removed the auto-exit fullscreen functionality when using IMA with skippable ads, now that iOS 12 allows the video element (and thus the skip button to) work in fullscreen instead of the native player. Decluttered the seek slider by removing cue markers for non-linear (banner overlay) ads. In the VAST plugin, added support for the following attributes in the ad tag wrapper: fallbackOnNoAd – selects any stand-alone adwhen set to true and the response contains no ad.The default is false. followAdditionalWrappers – ignores wrappers received in the response when set to false. The default is true. allowMultipleAds – only allows stand alone adswhen set to false. The default is true. To make the player more resilient, if IMA erroneously clears the video tag when trying to resume playback from an ad, the player will try to recover by attempting to reload the item source. Expanded the on(adsManager) event, which fires when the ad manager is loaded, to IMA. This event can be used to integrate with third-party vendors. ^ Change layout backend sub menu, using class alert alert-info. -------------------- JW Player Module Advanced 5.5.0 08 September 2018 ------------------ ^ Upgrade to JW Player 8.5.0 Recommendations Widget Introducing a new user interface for our Recommendations customers: the shelf widget, which dynamically inserts a horizontally-scrolling carousel of thumbnails directly below the player. In contrast to the in-player shelf, which is only visible on pause and when the viewer manually opens it themselves, the new widget interface is always viewable below the player. We encourage you to turn on the shelf widget, which will further increase opportunities to display recommendations and drive plays as a result. Core Player Added a new recommendations interface, the shelf widget, which will place a recommendations shelf directly below the player, outside of the player’s container by setting related.displayMode to shelfWidget. Added a new startTime configuration setting for playlist items that will instruct the player to begin playback of the media at the time specified. Ads Updated ad preloading functionality in the VAST ad plugin to include preloading the preroll of subsequent playlist items. Added the configuration property bidOnBreaks for Video Player Bidding to the VAST ad plugin. For FreeWheel ad plugin, added PVRN, VPRN values to the ad request for forecasting purposes. For FreeWheel ad plugin, started passing afid, and sfid values to the ad request for fallback purposes if the primary Asset ID and Site Section ID fail. Expanded the on(adsManager) event, which fires when the ad manager is loaded, to IMA. This event can be used to integrate with third-party vendors. + Joomla Update system is now fully support, you will just have to set your download ID in the backend of the extension and save it, once done, you will able to upgrade your extension troug the Joomla admin interface without download it first on joomlarulez.com. You can retrieve your Download ID on Joomlarulez.com : User menu --> Download IDs (https://www.joomlarulez.com/download-ids.html), Generate Download ID there. You can generate multiple Download IDs. Each Download ID can only be used for one website only. So if you use your extension on multiple websites and you have the right license, you will have to generate multiple Download IDs, each Download ID can only be used for one website only. Each Download ID can be used for multiple extensions on the same website. So if you used multiple of our extensions on your website, you will only need one Download ID - Remove some old deprecated comment lines. -------------------- JW Player Module Advanced 5.4.0 23 June 2018 ------------------ ^ Upgrade to JW Player 8.4.0 Ad Preloading and Player Error Standardization It is all too common for viewers to wait several seconds for video advertisements to load—if they load at all—and those that make it through often dont return due to the slow load times. In JW 8.4, we introduce ad preloading, an optional setting which preloads ad breaks before they play. We are committed to providing publishers and their viewers with a no-buffer video player, no matter what the setup. This release also introduces new and improved error handling in the player. We have revamped error codes from the ground up to be more comprehensive, descriptive, and consistent. This will enable faster troubleshooting and programmatic handling of errors by developers. Error codes will now appear in the console with deep links to our new Error Reference documentation organized by category. Lastly, we are improving error messages shown in the player to be more friendly and informative to the viewer, which we will be rolling out in beta versions over the next few weeks before the release goes into production. + Core Player New player error coding and classification system documented in new Error Reference doc. Error codes now appear in the developer console with deep links to the Error Reference page. Error code assignments map to new non-technical, viewer-friendly error messages displayed in the player. Improved player error display to be responsive to screen width and message length. Changed structure of error events. Refer to Error Reference. Added support for entering or exiting full screen on Android devices when a user rotates their device. Added JW Player custom parameters to links that are shared via the sharing menu, which makes it possible to track plays that result from sharing a video. Improved media notifications on Android by including poster images and publisher domain names. Accessibility Documented our screen reader support in our Accessibility Reference. Improved menu navigation to conform with accessibility standards; up and down arrows navigate items in a submenu, while tabbing selects different menus. Added the ability to focus on the time slider (progress bar). Added screen reader support to read out the current position when focused on the time slider or when seeking. Added screen reader support to read out the volume when changed. + Ads Created a new configuration property for VAST and IMA, preloadAds, which enables ad preloading for prerolls, midrolls, postrolls in the first playlist item. Added a viewableImpression event to VAST and IMA based on the IAB definition of viewability, which states that a video must be 50% viewable for at least 2 seconds. Re-added the fullscreen icon during ad playback at all breakpoints. This was previously removed to conserve controlbar space. Now passing autoplay/mute status to DFP with VAST. Improved behavior of the FreeWheel ad plugin with ad blockers by proceeding directly to content rather than waiting for a timeout. Added a new ad error code (900 / 60007) that gets raised when there is an attempt to load ads on Android 2.3, which is not supported. Added creativeID from the VAST XML response to the VAST admanager’s adImpression/adError events. For Video Player Bidding, segmented bidresponsetime by now also reporting the script loading time and the time between adBidRequest and adBidResponse. Improved Ad loading messaging for the VAST admanager to only show when an actual ad is being loaded. Improved reporting of Video Player Bidding impression tracking when the DFP mediation layer is used. Added breakstart and breakend events to Google DAI. Removed ad countdown and pod count messaging in Google DAI live scenarios to prevent incorrect messaging. + Prepare the compatiblity to Joomla 4 Add new Bootstrap modal popup, compatible with Joomla 3 and 4, beta version. Add title field for Bootstrap modal popup. Add a max-width of 4096px in jwbox.css this to be compatible with Cassiopeia Template of Joomla 4. Use JVERSION to compare Joomla version instead deprecated JVersion class constants in Joomla 4. Removed article Id code. + Change url server update to https. ^ Clean embed filename for popup and sharing. ^ set default value for xml parameter notes in backend, this for older version than Joomla 3.1. - Remove some old deprecated comment lines. # Add some semi-colons missing in jquery.jwbox.js. -------------------- JW Player Module Advanced 5.3.0 07 May 2018 ------------------ ^ Upgrade to JW Player 8.3.0 Core Player Improved the playback experience by maintaining quality between videos in a playlist. The player starts subsequent videos in an embed with the quality that most closely matches the previous item based on bandwidth comparisons. Improved the playback experience by preserving the viewers bandwidth estimation and using it to select an initial quality level when playback starts. Added a new configuration option, defaultBandwidthEstimate, which sets an initial bandwidth estimate in bits for all viewers. To set the highest quality as an initial estimate, reference the highest bitrate from your manifest. Improved the Auto quality label in the settings menu to also show the quality being played when Auto is selected. Improved the experience of watching live streams that do not have a DVR window. Instead of the pause icon, which used to pause the stream and resume behind the live edge, the player now features a new stop icon, which resumes from the live edge when playback resumes. The player appears paused on the last frame watched. Note that for visual clarity, small players will display a pause icon in the center of the screen while exhibiting the new stop behavior. Via API, the pause method will achieve the behavior described here, while the stop method will stop playback and put the player in the idle state. Live streams without a DVR window no longer get behind the live edge, and the live icon is no longer clickable to return to the live edge. Added a new localization option, localization.stop for the new stop icon in live mode. Added right click support via long press on iOS and Android devices. Long pressing displays the JW Player right click menu. The menu automatically fades out within three seconds if not interacted with. In accordance with GDPR data transparency compliance, added a video information overlay accessible via an option About this video in the right click menu. The viewer’s Client ID is displayed in the lower right corner, which can be used to request data from JW Player. Added a new localization, localization.videoInfo, which can be used to localize About this video text in the right click menu. We are optimizing the click-to-play button to drive more plays for our publishers. Some customers may notice their play button is more stylized than before. When the player is within range of the live edge, viewers will now see the video position at the end of the timeslider. Previously, a slight gap erroneously implied the viewer was not at the edge. Ads For Video Player Bidding, expanded the number of possible bidResults to include expanded error tracking. For Video Player Bidding, added the priceInCents to the adImpression and adError events for all mediation layers. For Video Player Bidding, created a new mediation option when the SpotX bidder is in use jwpspotx which allows SpotX to act as the primary adserver. Updated the FreeWheel ad plugin to start sending video playback events to the adserver. Created a new timeout config option for the IMA ad plugin vastLoadTimeout and extended the default to 10 seconds from 5. Created a new startOnSeek ad rule. This can be used in conjunction with seek() in lieu of a play event to define a start position and begin playback. This prevents viewers from being bombarded with ads when starting content playback from somewhere other than the contents beginning. Expanded Video Player Bidding functionality to the VAST plugin. Video Player Bidding was initially only available for IMA plugin. For Video Player Bidding, created a new mediation layer JWPDFP that combines both existing mediation layers (JWP and DFP), allowing the SpotX bidder to take advantage of the benefits of both mediation layers. ^ If there is not any license code set, the player will fallback to version 6 of the player who is deprecated. - Remove default license code, since January 2018, JWPlayer require a commercial license for all JWPlayer used, this means : This release removed the default license key. Previous default license key will be unset by the end of may 2018. It s important that your used your own key code as if not, you can meet disrupting service with default code set in the extension. Another case If you dont have any license code and you meet a disrupting service please contact us. - Remove compatibility with Joomla 1.5, last version compatible is 4.2.0. - Remove all code to solved cache issue in Joomla 1.5. - Remove some old deprecated comment lines. -------------------- JW Player Module Advanced 5.2.0 24 March 2018 ------------------ + Add JWPlayer 8 directory, it still need a license key to be load. ^ Upgrade to JW Player 8.2.0 Better Handling of Browser Autoplay Policies As browser autoplay policies evolve to create a better video experience for viewers, it has become increasingly challenging for publishers, especially those that monetize their content, to ensure consistency. Safari 11 was first to take a strong stance by giving viewers the power to prevent videos from starting automatically. In JW 8.1, we implemented functionality to pause playback instantly when the browser blocks an autoplaying video. With the impending release of Chrome 66 in April, we invested a lot of time in simplifying the expected behavior so that we can provide viewers the right feedback to know if and when they need to interact with the player to start playing, while also mitigating the impact on our publishers’ ability to monetize their content. In JW 8.2, the player will react to the combination of the browser’s restrictions and the publisher’s setup configuration by autoplaying with or without sound, or falling back to a click-to-play player. Core Player Updated the player to check for browser-level autoplay restrictions. Updated the player to autoplay with sound if possible, autoplay muted if possible when there are no ads, or autoplay muted ads if autoplayadsmuted: true is set. The player will fall back to click-to-play after exhausting all autoplay options. Added the ability to start playback from a non-zero position. You can register seek as a function of the ready or playlistItem events, so that the player starts playing from a specific point. Added support for DASH streams on desktop Safari. NOTE: DASH streams are not supported on iOS Safari, nor with Airplay on desktop devices. Added user agent detection for UC browser, where previously it was reported as Chrome. UC browser can be detected using the getEnvironment() API. Implemented licenseResponseFilter for DASH streams and Fairplay. These methods allow customers to modify or access responses from license requests. This is needed for license wrapping implementations. Added a new API method, getCurrentTime(), which exposes the current time value of content. For on-demand streams, currentTime will be the same as the position. For live or DVR streams, the currentTime will not be modified based on duration or seekable range. Improved the user experience on mobile devices by allowing the viewer to pause playback of videos that autostart muted without unmuting first. Expanded media preloading capabilities to preload subsequent media before the current media ends. As is the case with preloading media that will play after an ad break, this behavior will only occur when the preload configuration option is set to metadata (default) or auto. Players with preload set to none won’t load content in the background. Added the ability to configure when live streams time out. The new liveTimeout configuration option accepts a number. The default, undefined behavior is dependent upon segment length and differs slightly across providers. To configure a stream to never time out, set this value to 0. Added the ability to modify headers mid-stream with a new licenseRequestFilter configuration option in Fairplay DRM blocks. This option already works with Widevine and Playready. Added support for TTML captions with DASH streams. Added a new localization option, localization.copied. The word “Copied” appears as default text whenever a viewer clicks on the link option in the sharing menu. This new option can be used to customize or translate that text. Improved readability of the live/not live indicator. Instead of an SVG icon, the word “Live” is now plain text, which can be localized with localization.liveBroadcast. Updated the default text for localization.liveBroadcast from “Live Broadcast” to “Live.” Added support for the most recent Google Analytics embed type, gtag.js. Older types of embeds are still supported. The player now marks events sent to Google Analytics nonInteraction: true if they were not manual viewer interactions. This enhancement increases bounce rate accuracy. Ads All Modified and improved adimpression/aderror events to include the full list of wrapped tags. Google IMA Passed the results of the autoplay restrictions check to the ad plugin. Improved the IMA ads UI to account for Google ads with built-in skip buttons, countdowns, etc. Add maxRedirects configuration, The maximum number of redirects the player should follow before timing out. Add bids configuration, Enable video player bidding with the given settings and bidders. VAST Add conditionaladoptout configuration, (VPAID-only) Used to tell the player to not play ads with the conditionalAd attribute inside of the VAST response. Add podmessage configuration, Text that displays during playback of an ad pod. Use __AD_POD_CURRENT__ to denote the currently playing item in the pod and __AD_POD_LENGTH__ for the total number of ads in the pod. FreeWheel Add FreeWheel ad plugin. Updated FreeWheel ad plugin to include URL request parameters noting the stream is live vs VOD. Added the adLoading parameter to the adError event. Improved the user experience by making the player click-to-play when the browser suppresses autostart. IMA, Freewheel Add loadVideoTimeout configuration, In milliseconds, the maximum amount of time between the VAST XML being returned and the adstart event before timing out. VAST, IMA Add rules configuration, Enable ad rules with the given settings and bidders. Recommendations Added a new recommendations interface called Recommendations Shelf, which allows viewers to browse JW Recommended videos throughout the playback experience. This feature, available to all customers with a Recommendations entitlement, will provide more paths for engaging with content that is most relevant to your audiences, ultimately deepening engagement and powering additional monetization opportunities. To enable the shelf, include "displayMode": "shelf" within the related block in your setup configuration. The current overlay interface remains default behavior when displayMode is undefined or set to overlay. Added a new localization option, localization.close to customize the text of the close button added in the recommendations shelf. The default text is “close.” Updated the default localization.related text to “More videos.” This localization option affects the Recommendations Shelf button above the control bar in shelf mode, as well as the tooltip and the overlay title in overlay mode. Updated the default discover icon in the control bar to improve discoverability. Improved accessibility for the recommendations shelf so that viewers can interact with it using a keyboard or screen reader. Viewers can use the left and right keys to paginate through the shelf and the escape key to close the shelf when not in fullscreen mode. ^ Upgrade to JW Player 7.12.13 Core Player Added support for the most recent Google Analytics embed type, gtag.js. Older types of embeds are still supported. The player now marks events sent to Google Analytics nonInteraction: true if they were not manual viewer interactions. This enhancement increases bounce rate accuracy. ^ set default Google Analytics script to analytics.js. ^ Most of parameters in the database and XML manifest are renamed without loosing user backend settings, this to help the php optimization code, for Joomla version older than 1.7 these parameters have to be reset by editing the backend parameters. ^ Class Modplayerjr_AdHelper only help on joomla parameters not player parameters who used a specific function setjwparams shared with the plugin ^ Plugins script now used setjwparams function. ^ Optimize php code for cleaning cdn url. # Fix an issue with default value for androidhls parameter when JW7 and JW8 is set. # Fix an issue in setjwparams function between numerical and boolean comparaison. # Fix an issue with meta image link when sharing. # Fix an issue with cdn key head data. - Remove some old manipulation data associate to JWPlayer 6 (fallback, primary), these parameters are still available to set. - Remove some old variables associate to JWPlayer 5 (logo, http.startparam), these parameters are still available to set, these parameters are still available to set in frontend. - Remove some old deprecated comment lines. -------------------- JW Player Module Advanced 5.1.0 03 February 2018 ------------------ ^ Upgrade to JW Player 8.1.1 + JW 8 : Seamless Media Transitions As JW Player continues to make strides to improve the viewing experience of video on the web, our goal is to bridge the gap in the quality of experience between the web and cable TV. Buffering is a reality of video on the web – we re committed to making that a thing of the past. In 8.0, we improved our preloading so that videos now start instantly when the viewer clicks play. However, viewers still had to endure video buffering after watching a pre-roll ad. 8.1 introduces even smarter preloading, resulting in a seamless transition from ads (including mid-rolls) to media. In our preliminary tests, we ve seen huge improvements in time to first frame, even on slower connections. The wait time for media to start playing after an ad goes from seconds in 8.0 to mere milliseconds in 8.1. You re in for a treat with the upgrade to 8.1 and we can’t wait for your viewers to notice the difference. + JW 8 : Core Player Improved the user experience when the preload configuration option is set to metadata (default) or auto. Video content will now preload during ad playback, resulting in a seamless transition from pre-roll and mid-roll ads to the video content on most reliable connections. Players with preload set to none wont load content in the background. The visual quality and buffer events still fire in the same order as they always have, but before the play attempt event, instead of after play. + JW 8 : Ads Updated FreeWheel ad plugin to include URL request parameters noting the stream is live vs VOD. Improved the IMA ads UI to account for Google ads with built-in skip buttons, countdowns, etc. Modified and improved adimpression/aderror events to include the full list of wrapped tags. + JW 8 : Add renderCaptionsNatively parameter, If true, captions render using the browsers renderer. If false, the player's renderer will be used in all browsers, except for Safari. Note: This configuration is not contained within the captions block. ^ Default Player to Cloud-Hosted 8. - Remove stagevideo, ga.trackerobject, captions.back, cast.appid parameters for JW 6.x as it is a deprecated product. - Remove CDN support for JWPlayer 6, all players are moved ot JW8 by default, CDN 7 is still suport as legacy. - JW Player no longer supports in-feed video playback on Facebook, only thumbnail sharing will be displayed on Facebook. - Remove JW5 player as it was only still used for facebook video sharing. - Remove playlist5.php script as it was only used with JW5 and previous version. - Remove some old deprecated comment lines. -------------------- JW Player Module Advanced 5.0.1 16 December 2017 ------------------ ^ Upgrade to JW Player 8.0.10. Core Player Improved the design and interaction of the discovery and playlist overlay in small players, making it our most accessible overlay yet.The overlay now supports swipe interactions and keyboard shortcuts, making it easy to navigate between items. You can page through the list of items either by swiping left or right on touch devices or using the keyboard’s left or right arrows. The overlay can be closed using the escape key. Finally, you can tab through all the elements in the overlay and interact with them using the enter key. Improved the user experience with new Discover and Playlist headings, which provide context for the discover and playlist overlays. The headings and the tooltips for the overlay’s icon in the control bar can be customized in a setup block with localization.related and localization.playlist. Improved the autoplay experience on mobile by showing controls when playback starts. Previously, viewers could not control the video until they unmuted the video by tapping an icon in the lower right corner of the screen. Now, the mute icon will still appear in the corner when controls fade away, but tapping on the screen brings up the controls immediately. Added a callback, onXhrOpen, which can be used to set custom XHR headers in HLSjs for AES-protected HLS streams. The callback gets executed after an XMLHTTPRequest is initialized and before the request is sent. withCredentials is unaffected by this change. If configured, it gets set before onXhrOpen is called. Refer to our configuration reference for implementation details. Expanded HLSjs usage to Android Chrome, where it is now the default for HLS playback. This makes the HLS experience more feature rich and includes support for 608 and in-manifest VTT captions, as well as improved playback stability and support. HLS.js usage can be disabled by setting hlsjsdefault to false, which will result in the player using native Android HLS playback. Improved our Discover recommendations engine by reducing the likelihood of a viewer seeing a repeat of videos they’ve already seen either by choice or via auto-advance. Items that are manually clicked will not be recommended again for 10 minutes, and items that are automatically advanced will be excluded for one hour. All player editions using JW8 now support all HLS functionality, including AES encryption and 608 captions. DRM support remains an Enterprise-only feature. To reduce clutter and avoid confusion, the JW Player build number has been removed from the right click menu. It was previously displayed for all non-production versioned players. Ads Added the ability to localize the “Loading Ad” message for IMA and FreeWheel plugins. Added the ability to set the number of allowable redirects in IMA above the default for cases like header bidding. For FreeWheel, added a new configuration option customadunitname that allows for specifying the SLAU query parameter for each ad break. Updated the requestTimeout configuration option to apply to the IMAad plugin, where it previously only applied to VAST. ^ Upgrade to JW Player 7.12.11. -------------------- JW Player Module Advanced 5.0.0 24 October 2017 ------------------ ^ Upgrade to JW Player 8.0.0. Introducing JW8 JW Player 8 is our fastest and easiest-to-use player to date. This major release debuts a completely redesigned, mobile-optimized user interface that can easily be customized to brand your player. JW8 features smart content preloading and a smaller embed script, so viewers never see a buffer wheel and experience faster page loads. To continue to offer publishers industry-leading support, we now officially support Facebook Webview and VAST 4, and have deprecated Flash. General Changes Updated the default player size to 640px wide x 360px high. Upgraded hls.js to version 0.8.4, which enhances the stability of HLS playback in the player and improves HLS stream support. Changed the default provider for HLS content on Chrome for Android from HLSjs to HTML5. The player will now show a center display icon when the player pauses itself due to a failed attempt to play the video, providing more visual indication to the viewer that they need to manually hit play again. This is especially helpful in response to Safari 11, where autoplaying videos with sound are automatically paused on playback unless the user has changed the default browser setting. Added the Cardboard mode icon to the idle state, so that when available, viewers can enter 360 mode before starting the video. Added the ability to instantiate a player and immediately begin playback from a click on an element. By calling setup() followed by play(), the user interaction on the element is propagated all the way through to the instantiated player, eliminating the need to interact with the player to start playing media after it’s setup. Bundled the most frequently used combinations of player assets (controls, media providers, and browser polyfills) so that all the Javascript needed to begin playback can be provided in fewer responses. Improved handling of player asset loading so that users get feedback more quickly when a plugin, component, or non-essential asset fails to load. In the case of non-fatal errors, the player will attempt to recover gracefully. If a required component fails to load, the player will fail to setup and the user will be notified within 20 seconds. Separated the core player to make our embed script significantly smaller, shaving off more than 100kb that no longer needs to be loaded and parsed before the player is set up. Updated the preload behavior so only the first player on the page or viewable players preload when preload is set to anything other than none. Improved the preload: metadata setting so that the player loads the manifest and buffers a maximum of one segment of media for HLS and Dash streams. MP4 streams load metadata only. Improved preload: auto so that the player loads the manifest and buffers approximately 30 seconds of media. MP4 streams load based on browser behavior when the preload: auto attribute is set. Updated the default preload configuration to do preload: metadata when preload is not set. Support JW8 does not support JW7 license keys. JW Platform-hosted JW8 players will automatically have JW8 keys. For self-hosted players: Your JW7 license key will still work with your JW7 player embeds, but it will not work with JW8. Every account will provide both JW8 and JW7 versions of the license key. HLS, DASH, 360, and casting are now all supported in all editions of the player, including the Free edition. The recommendations plugin is no longer supported in the Premium edition. YouTube and RTMP formats are no longer supported in the player. Removed the Flash provider from the open-source jwplayer project. Flash is no longer supported in JW Player and is only used to play HLS streams in IE11 on Windows 7. API Updates Added a getEnvironment() API method, which provides an object containing all browser and operating system information decomposed from the user agent. Deprecated the primary configuration option. Flash can no longer be defined as a primary provider. The player will choose the appropriate provider based on the environment it's in and the media type. Deprecated all jwplayer().onEventName events, Browser/OS util methods and player constants that follow the pattern JWPLAYER_*. Deprecated the ability to toggle the state simply by calling play() or pause(). This change makes play and pause behavior more predictable in the API. Going forward, calling play() while media is playing does nothing, as does calling pause() when the player is already paused. Changed the configuration options and API for using playback rate controls. In JW8, playbackRateControls is a boolean that toggles the visibility of playback rates in the global menu. playbackRates, a new optional config property, accepts an array of numbers which overrides the default playback rate options of 0.5, 1, 1.25, 1.5, and 2. This improves upon the first iteration of the feature, released in 7.12, where playbackRateControls controlled both the menu’s visibility and custom playback rates. This change is backward compatible and will not affect JW7 players upgraded to JW8. Created a backward compatibility script so that custom code written against deprecated API functionality will continue to work when a JW7 player is updated to JW8. User Interface Improvements The control bar now uses flexbox, which simplifies the DOM structure and css. Icons are no longer grouped in left, center, and right divs. Consolidated all control bar icons that had their own menus into a single settings menu, accessible via the gear icon in the control bar. This includes quality, audio tracks, captions and playback rate controls. Captions still has a dedicated icon in the control bar for accessibility reasons. The sharing menu has also been added to the settings menu. Like captions, sharing has a dedicated control bar icon that opens the settings menu to the sharing sub-menu. Removed webfont-based icons and replaced them with inline SVGs. The following icons have been redesigned for JW8: live, quality, buffer, error, and rewind 10 seconds. Changed all dock icons from being positioned in the upper-right corner to the control bar. The addButton API now adds buttons to the control bar. These buttons will be added to the right of the logo if the logo is present in the control bar. Improved the timeslider behavior so there’s a visual indication when a user hovers or scrubs to a new playback position. We’ve also increased the touch target to make it easier to engage with the timeslider on touch devices. Leveraged the timeslider as a progress indicator during ad playback by making it visible and positioning it below the control bar icons. Skins Added 11 new skin customization options in JW8. If supplied, the three customization options that were available in JW7 (skin.background, skin.inactive, skin.active) will map to the new options in JW8. Note that there’s no mapping to the new skin.timeslider.rail option. Deprecated all JW7 skins. JW8 debuts our all-new default skin featuring a transparent control bar, tooltips, and a modern interface, which carry over to ads and audio only modes. Accessibility Added tooltips that appear on hover or focus over any icon in the settings menu, which increases clarity for viewers. Improved support for keyboard navigation in JW8. Users can tab to advance through buttons and menu options in the player, and use the enter key in lieu of a click to take action on any focused item. The escape key can be used to close overlays and menus. Logos Added a new logo position option, “control-bar”, which places the logo in the control bar with an optional clickthrough link. Note: currently, all logos in the control bar render in a square container. A future release will support rectangular logos. Deprecated the timeSliderAbove configuration option since it will be the only layout in JW8. Updated the default logo margins to be 20px from the sides of the player. Added maximum dimensions for logos. The height or width of a logo will not exceed 15% of the player’s height or width. The player will dynamically resize logos to fit within the height and width constraints so as to not obstruct the video. Advertising Updates Included the Skip button in the vpaidcontrols configuration’s functionality for the VAST plugin. Included the duration present in the VAST XML on the adImpression event. JW8 dropped support for VAST 1 as it has been deprecated by the IAB and has extremely low usage and a high risk of causing ad errors. Added MediaFile compliance metadata from VAST4 tags to Vast plugin API events, including the reason the tag was not compliant. Updated our Vast plugin to support playback of VAST 4 ad tags. The following VAST 4 metadata has been added to Ads API events: UniversalAdID, Categories, ConditionalAd, as well as compliance with IAB guidelines on MediaFile setup. Added support for m3u8 MediaFiles in ad tags in our Vast plugin. ^ Upgrade to JW Player 7.12.9. + Advertising Updates JW 7 Added support for Skippable Ads on iOS, with the caveat that ads cannot be displayed in the device's native fullscreen. Viewers encountering an ad in fullscreen will be forced out and will have to manually re-enter fullscreen. Note: there is a known issue with this functionality with IMA in Facebook webview that the IMA team has identified and is aiming to patch in an upcoming release. + Add Joomla! Update System support, new edition upgrade of the Joomla extension will be now announce in the backend, the upgrade process still require to login and download on joomlarulez.com. ^ Used folderlist xml list selection for JWPlayer version in backend, since folderlist Joomla issue has been resolved. -------------------- JW Player Module Advanced 4.12.0 08 August 2017 ------------------ ^ Upgrade to JW Player 7.12.3. Designed with publishers of education and sports media in mind, JW Player 7.12.0 introduces a new configuration option to enable playback rate controls. When enabled, a tooltip menu in the control bar gives viewers the ability to control the playback speed of the video. Publishers can choose to show our pre-set rates or to configure custom values between 0.25x and 4x. Developers can also use the new API getter, setter and event listener to control the playbackRate. This release also includes native caption and subtitle support for casting. + Improvements Added the playbackRateControls configuration option to enable the playback rate menu in the controlbar. This allows viewers to control the video’s playback speed. Publishers may use default or custom speed values. When playing HLS streams on Android Chrome or using Flash, the menu will be hidden due to unsupported functionality. Added setPlaybackRate and getPlaybackRate API methods and a playbackRateChanged event listener.Note that this is not supported in Flash or Android Chrome with HLS streams. Added support for embedded and sideloaded VTT tracks in the default Chromecast receiver. Captions style configuration options are also applied to the receiver. VTT tracks must be loaded from the same domain as the media. Set the