JW Player has been around for a very long time and is a great little video player, I even use it at Gamers Daily News, in fact. The recent update to version 5.9 brought with it some interesting improvements in the HTML5 area I thought you might be interested in.

The big change on the Android side of things is that HTML5 is now the default playback. This was in direct response to Adobe’s abandoning the Flash player for Android. According to the announcement from LongTail, they’ve decided to, “focus our energies on optimizing HTML5 support on Android rather on a legacy platform. As we continue to bring HTML5 support in the JW Player closer to parity with Flash mode, we’ve focused the 5.9 release on a variety of HTML5 stability and user experience updates.”

What are those other HTML5 improvements?

Cleaner User Interface (Especially on iOS devices)

Some changes were made to make this more user friendly and give a better experience.

  • The preview image now fades in when player loads
  • Video is not displayed until it is sized correctly and ready to play
  • The buffering icon appears on the iPad while video is loading

Saved Volume in HTML5

What this means is that, like Flash, the HTML5 JW player will now remember the user-selected volume level so even if they reload the page or move to another video page on the site it will have the same level, or be muted if that was chosen. There was one caveat:

(Note: this won’t work on iOS, since websites are not allowed to set the volume of those devices)

Other Player Enhancements

There are a couple other things they’ve worked on. Firstly, this made me chuckle when I read it, Blackberry devices will fail over to download because, “HTML5 functionality is unreliable.”

  • Added a background skinning element for elapsed/remaining time in HTML5 mode.
  • Cleaned up the look of the player when loading the preview image and switching to video playback. Player now sets the volume to zero when the user clicks close to the end of the volume slider. When stretching is set to uniform, the player now fills the screen if the dimensions are close enough. The preview image now fades in. Volume level is now saved in HTML5 mode
  • Added a new API event, onBeforePlay, which fires before the player starts to buffer or resume.

There were also a list of bug fixes in this version.

Bug Fixes

  • Player now ignores the autostart option in iOS, since iOS can’t autoplay anyway.
  • Fixed a bug where shift-tab caused the player to lose focus when using the keyboard to navigate.
  • Player now gracefully handles empty XML configuration files.
  • In the “over” state, the controlbar’s backgroundcolor is no longer drawn.
  • Fixed an issue where the player sometimes attempted to load “undefined”.
  • Fixed a bug where calling the playlistItem() API method would fail when called from onComplete event.
  • Logo linktarget option is now respected in HTML5 mode.
  • Made HTTP provider consistent in which URL it would use on replay.
  • Fixed an issue where the controlbar would break in Opera when position was set to “bottom”.
  • In XML playlists, player now uses value set in jwplayer:file instead of media:content if both are present.
  • Fixed an issue where a bottom-aligned controlbar wouldn’t reappear after return from fullscreen.
  • Fixed an issue which could break JavaScript if the playlist was requested from the JavaScript API.
  • Now respects the item option in HTML5 mode with external playlists.
  • The player now prevents setFullScreen() call from JavaScript in Flash mode (since it won’t work anyway).
  • Fixed an issue where both player controls and native controls were visible in fullscreen mode in Safari.
  • Player no longer throws an error during setup in older versions of Firefox.
  • Error messages are no longer visible when navigating away to another page in Firefox.
  • Spaces in metadata field names no longer cause JavaScript errors.
  • Fixed a bug where getPlugin(‘display’).onHide/onShow events were firing backwards.
  • The preview image is now displayed if load() is called from the JavaScript API while player is idle.
  • In HTML5, dock button icons are now centered.
  • The player now gracefully handles skins where the playlist component has been completely removed.
  • The onComplete event no longer fires several times if multiple players are instantiated on a page.