jPlayer

HTML5 Audio & Video for jQuery

a project by happyworm

The jPlayer 2.3.0 release has been superseded by a new release.
Use the navigation bar above to access the latest release, jPlayer 2.6.0.

jPlayer 2.3.0 Release notes

  • Released: 20th April 2013
  • [2.2.1] Merged Pull Request: Review time problems by Tolia. If there is an hours time value, then the hours are automatically added to the minutes when the showHour option is false. Details in Issue #69.
  • [2.2.2] Reviewed Pull Request of [2.2.1] Implemented the same scheme for seconds, where the hours and minutes get added on if they are not being shown. Removed the requirement that the unit is > 0 to be displayed. The show options continue to directly control whether that unit is displayed. The input parameter is now checked that it is truethy and number type, otherwise zero is used.
  • [2.2.3] Merged Pull Request: DRYed up event settings by FarSeeing. The source and minified code is reduced in size as a result of the Don't Repeat Yourself (DRY) change. No functional effect.
  • [2.2.4] (Manually) Merged Pull Request: Fix for IE bug when using tabkey to access the player/document by micha149. Added tabindex="-1" to the object element used by the Flash solution.
  • [2.2.5] Merged Pull Request: Support AMD by ryanramage. Added AMD support so jPlayer is easy to use with jamjs. The jPlayer Package on jamjs.org. Updated version numbers of package details to jPlayer 2.2.5. (Will update for 2.3.0 release.)
  • [2.2.6] Bug Fix: IE9 and iOS6 now work with setMedia followed by play(time). Previously, IE9 would jump to time, but not actually play, and iOS would ignore the play(time) and play() from the start.
  • [2.2.7] Bug Fix: Added document mode sniffer to fix Internet Explorer Flash insertion on IE9. Sniffer based on Microsoft Library code. For example, when the following HTML is used to force IE version emulation: <meta http-equiv="X-UA-Compatible" content="IE=7" />
  • [2.2.8] Bug Fix: IE9 no longer requests the current page url on clearMedia. Solution from GitHub issue clearMedia makes extraneous HTTP request by marcn.
  • [2.2.9] Bug Fix: The Flash Plugin Version Sniffer now checks for Flash 10.1.
  • [2.2.9] Code Review: The Flash Plugin Version Sniffer code is now influenced by SWFObject 2.2. This enables the granular check of the plugin version using _checkForFlash(version) where version is a string with the form "1.2.3", "1.2", "1" or a number 1.2.
  • [2.2.10] New Feature: Added <track> support to setMedia ready for when HTML5 browsers implement the feature. This follows the W3C Media Element Living Standard and the WebVTT Living Standard as of 1st November 2012. A polyfill will be needed to enable this feature in the meantime and for the Flash solution. Could possibly use the WebVTT polyfill in Playr.
  • [2.2.11] Option Review: Added iemobile: /iemobile/ to noVolume and noFullScreen blocklist option objects.
  • [2.2.12] Code Review: Refactored _checkForFlash(version) to use code prior to 2.2.9 with changes to enable major.minor version number. The version is a number 1.2. This satisfies the need to check for Flash 10.1 while saving over 1k bytes when compared to the 2.2.9 change.
  • [2.2.13] Development Bug fix: Removed reserved word usage default, added in 2.2.10, and made jshint.com pass with our options.
  • [2.2.14] Feature Change: Renamed options fullScreen to fullWindow and noFullScreen to noFullWindow.
  • [2.2.14] New Feature: Enabled HTML5 native fullScreen mode. Desktop functionality verified with Firefox 16, Safari 5.1, Chrome 23 and Opera 12.10. Mobile functionality verified with iOS6 (iPad3) Mobile Safari and Android 4.2 (Nexus 7) Chrome.
  • [2.2.15] Bug Fix: Corrected noFullWindow regular expressions for msie, ipad and android_pad. For example, IE10 now allows full window.
  • [2.2.16] (Implemented) Pull Request: Be able to define the time format on each jPlayer instance by LeResKP. Functionality of request enabled while maintaining the original method $.jPlayer.convertTime(s) and the $.jPlayer.timeFormat options.
  • [2.2.17] New Feature: Added keyboard controls that effect the jPlayer instance in focus. The last instance played has focus, or the first instanced with the feature enabled. The option keyEnabled (default: false) is used to turn the feature on. The option keyBindings is an object used to define actions with their key and function. The option audioFullScreen (default: false) allows key controls to display audio poster images in full screen, which is useful for media players. eg., A player that has both video and audio media in a playlist. The method jPlayer("focus") may be used on an instance to gain focus without playing.
  • [2.2.18] (Manually) Merged Pull Request: Fix issues with incorrect RTMP video size by danbrianwhite. The solution was similar to Fix for RTMP videos not sizing properly by davidortinau. Both the original pull requests were 100% file differences. Investigated and found that JplayerRtmp.as had the incorrect line ending format. It had MAC format on a Windows machine, then GitBash assumed Windows format. This has been corrected and the change highlighted to preserve GitHub commit history visibility.
  • [2.2.19] New Feature: The videoWidth and videoHeight information is now maintained on the status. These are the intrinsic width and height values of the video in pixels. The default is zero before it is known or if it is audio media.
  • [jPlayerPlaylist 2.2.0 add-on] Merged Pull Request: Use .on() and .off() instead of .live() and .die() by bistory. The playlist add-on is now using .on() and .off() instead of the deprecated .live() and .die() jQuery methods. The add-on now requires jQuery 1.7+ and enables jQuery 1.9+ which dropped support of the deprecated code.
  • [jPlayerPlaylist 2.2.1 add-on] New Feature: Added default keyBindings options that enable next/previous track through the LEFT and RIGHT arrow keys.
  • [jPlayerPlaylist 2.2.2 add-on] Code Review: Updated jshint.com options to those used by jPlayer and made it pass.
  • [2.2.20] Security Fix: The Flash SWF had a security vulnerability that enabled XSS (Cross Site Scripting). Reported by Malte Batram. Security reference CVE-2013-1942.
  • [2.2.21] Bug Fix: The GUI's cssSelector elements click propagation was being disabled due to using return false;. Corrected to use event.preventDefault();.
  • [2.2.22] New Feature: Added the smoothPlayBar option (Default: true), which enables the animation of the play bar. Changes to its value are now animated over 250ms in a linear manner.
  • [2.2.23] Security Fix: The Flash SWF had a minor security vulnerability that enabled XSS (Cross Site Scripting). Reported by Eugene Dokukin. Security reference CVE-2013-2022.
  • [2.2.24] Development Default Change: The smoothPlayBar option (Default: false), had its default value changed from true to false.
  • [2.2.25] Code Review: Updated versioning to 2.3.0. Final check on jshint.com. Created and tested minified JavaScript.

jPlayer 2.2.0 Release notes

  • Released: 13th September 2012
  • [2.1.1] New Feature: Added RTMP support to the Flash fallback. Enables the supplied options: rtmpv and rtmpa for video and media RTMP streams respectively. RTMP feature developed by Robert M. Hall in this GitHub fork github.com/rmhall/jPlayer of jPlayer.
  • [2.1.2] Security Fix: The Flash SWF had a security vulnerability that could be exploited to steal cookies from the domain hosting the SWF. Reported by Jason Calvert.
  • [2.1.2] New Feature: The Flash SWF jPlayer version number is once again displayed when visiting the URL directly.
  • [2.1.3] Bug Fix: Affecting iOS and Blackberry. iOS 5.1 sometimes fails to give the media.duration and it remains a NaN. Blackberry OS7 gives the initial media.duration as Infinity. jPlayer now leaves the status.duration at zero until the media.duration is finite.
  • [2.1.4] Bug Fix: The RTMP solution locked up when the stop button/command was used, and when the progress bar was used while paused. Both issues were related to pause(time) causing a locked-up state.
  • [2.1.4] Bug Fix: The RTMP solution generated the progress event forever. The timeupdate event now only occurs while playing. ie., It used to happen during the locked-up state.
  • [2.1.5] jQuery: The jQuery.browser sniffer is deprecated in jQuery and will be removed in the future. All browser sniffing now uses code internal to jPlayer. ie., jQuery.jPlayer.browser
  • [2.1.6] Bug Fix: The CSS skins were changed to work with Popcorn. The position:relative; rule was removed from the container as this corrupted popcorn plugin placement over the video. Negative margins have been used instead to align video play button. As a result, the video play button graphic is now the active area for clicks.

jPlayer 2.1.0 Release notes

  • Released: 1st September 2011
  • [2.0.1] Bug Fix: The warning alerts are now controlled by warningAlerts instead of incorrectly by the errorAlerts setting.
  • [2.0.1] Bug Fix: The css selectors are now associated before the Flash is inserted. Previously, any warningAlerts would interfere with the Flash ready event, causing it not to occur.
  • [2.0.1] Bug Fix: The data structure is now complete before any event is generated. Previously, the gate and active properties were undefined. Affected the NO_SOLUTION error event.
  • [2.0.2] Bug Fix: The jPlayer ready event now only ever occurs once. Previously, using setMedia in the jPlayer ready event when the Flash solution was being used, would generate an extra ready event.
  • [2.0.3] Bug Fix: The jQuery UI widget.bridge code contained both the original line (now removed) and the line edited for jPlayer's use.
  • [2.0.3] Feature Change: jPlayer's size is no longer read from the CSS. This was due to jQuery returning the value in pixels rather than the CSS definition, such as "100%".
  • [2.0.3] New Feature: Enabled changing the video size. The full/restore screen sizes are set through the options: size and sizeFull, both being objects containing: width, height and cssClass. The cssSelectorAncestor determines the element that the cssClass is switched onto. The option fullScreen determines which setting is used. Added default values for the HTML css selectors restoreScreen and fullScreen, along with their methods.
  • [2.0.3] Default Value Change: cssSelectorAncestor default value changed to "#jp_container_1" from "#jp_interface_1".
  • [2.0.4] Code Review: Consolidated code to use the _cssSelectorAncestor() function. Added warning event with type CSS_SELECTOR_COUNT if ancestor not found.
  • [2.0.5] Feature Change: The volume and muted options are now maintained on the options object. The duplicate status object properties have been removed. These options can now be changed through the option method. The options object has been added to the jPlayer event object.
  • [2.0.5] New Feature: The mute() and unmute() methods now have an optional parameter. The default is true, and sending a false value performs the opposite effect. Eg., mute(false) is the same as unmute(), which both set muted to false.
  • [2.0.5] Bug Fix: An initial muted value of true now correctly displays the volume bar at zero.
  • [2.0.6] New Feature: Added Flash wmode option (default:"window") to constructor options. Valid wmode values: window, transparent, opaque, direct, gpu
  • [2.0.6] Feature Change: The Flash is now 1px by 1px during initialization, if it is used. The ready event internally minimizes it to zero size. IE6-IE8 are not effected and the size is zero during init.
  • [2.0.6] Code Review: The Flash insertion code is now influenced by SWFObject 2.2, instead of an older version.
  • [2.0.7] Bug Fix: The duration is now correct in iOS Safari when the media changes. The actual bug is in iOS 4.2.1, where the durationchange event occurs while the media.duration is obsolete.
  • [2.0.8] IE9 Review: Enabled the Flash solution in IE9. (Previously the IE9 beta had failed to work with ExternalInterface, so it was disabled completely.) Removed the try/catch around media.load(), which was required for IE9 beta. Removed IE9 specific clause in clearMedia.
  • [2.0.9] New Feature: Added noConflict option (default:"jQuery") for use with jQuery.noConflict(true).
  • [2.0.10] New Feature: Added emulateHtml option (default:false), which creates a bridge that emulates the HTML5 media properties, methods and events on the jPlayer DOM element. This works with both HTML and Flash solutions. Properties are read-only. Known conflict with readyState property on IE9.
  • [2.0.11] Bug Fix: jPlayer("destroy") now works with empty strings (and unfound selectors) in the cssSelector control association object.
  • [2.0.12] Bug Fix: Using jPlayer("play",time) or jPlayer("pause",time) on broken media URLs when using the HTML solution caused the broken URL to be polled. The internal HTML error event handler now cancels any delayed commands.
  • [2.0.13] New Feature: Added flv and fla support to the supplied formats. This makes using these formats more flexible and robust, rather than fooling jPlayer into playing the Flash FLV format through the m4v and m4a formats and setting {solution:"flash"}.
  • [2.0.14] New Feature: Added $.jPlayer.platform object for detecting mobile and tablet devices.
  • [2.0.15] Code Review: Verified JavaScript using JSHint. Minor code syntax changes. Added JSHint options to source. All code will be reviewed in future before commiting to GitHub.
  • [2.0.16] Development Bug Fix: The cssSelector controls restoreScreen and fullScreen now show their correct state.
  • [2.0.17] New Feature: When the Flash solution has its CSS set to display:none and is then shown again, jPlayer will now setup the Flash from the current status state. This is primarily for solving a problem with the Full Screen system on Firefox, where position:fixed causes the Flash to reset. This issue does not affect IE6+ at all. Chrome, Safari and Opera are affected by the display:none issue. Firefox is affected by both.
  • [2.0.17] New Feature: To aid with the display:none issue, new events and error codes have been added. When the Flash generates any additional ready events. the $.jPlayer.event.flashreset event occurs after attempting to setup the Flash with the current status. The error type $.jPlayer.error.FLASH_DISABLED occurs if any command is given to jPlayer while the Flash is hidden or disabled by the browser.
  • [2.0.18] Feature Change: Changed the way the volume controls work. Clicks on the volume bar now unmute if the volume was muted along with changing the volume. Added a new cssSelector control volumeMax (default: ".jp-volume-max") and its method, which unmutes and sets the volume to max. The volumechange event is now generated from the HTML media element's event or emulated through JavaScript for the Flash. The volume fix for Chrome 4 was retested and found to be unneccessary. It has been removed to enable the volumechange event to be used on the HTML element.
  • [2.0.19] New Feature: Implemented autohide for the control interface. Added the option autohide, an object with properties: restored, full, fadeIn, fadeOut and hold. Added the cssSelector entity gui (default: ".jp-gui"). Changed default of the wmode option to "opaque". Changed default of sizeFull:{height:"100%"} Added $.jPlayer.event.resize event for when screen state changes or when size options change.
  • [2.0.20] New Feature: Implemented the repeat control interface. Added the loop option (default: false) to determine initial state off loop. Added the repeat option, which defaults to the repeat event handler for repeating a single piece of media. Added cssSelectors: repeat (default: ".jp-repeat") and repeatOff (default: ".jp-repeat-off"). Added the $.jPlayer.event.repeat event that occurs when the repeat state is changed and immediately before the ready event.
  • [2.0.20] Development Bug Fix: Renamed the cssSelector: interface (".jp-interface") to gui (default: ".jp-gui").
  • [2.0.21] Bug Fix: Corrected the auto ID creation of the jPlayer div ID to work with jQuery 1.6+. The original strict condition check on the jQuery.attr("id") has been changed to a falsy check.
  • [2.0.22] Development Bug Fix: Corrected the GUI display when changing screen mode during a GUI fade out.
  • [2.0.23] Bug Fix: The instance is now correctly removed from the instances static object in the destroy method.
  • [2.0.24] New Feature: Added the nativeVideoControls blocklist option, which is an object containing user agent regular expressions. The native controls are used if matched. Native video controls are disabled when audio media is supplied and noFullScreen is set if nativeVideoControls found a matched.
  • [2.0.24] New Feature: Added the noFullScreen blocklist option, which is an object containing user agent regular expressions. The full screen buttons are hidden if matched.
  • [2.0.24] New Feature: Added the noVolume blocklist option, which is an object containing user agent regular expressions. The volume controls are hidden if matched.
  • [2.0.24] Feature Change: The setMedia method no longer performs a clearMedia command before setting up the new media.
  • [2.0.24] Development Bug Fix: The destroy method removes the size:{cssClass} from the cssSelectorAncestor.
  • [2.0.25] Bug Fix: IE9 on Win Server 2008 has the media.canPlayType property, but did not implement the function. The canPlayType() method is now tested in a try/catch before using it. If the test fails, the HTML solution will not be used.
  • [2.0.26] Bug Fix: Fixed the Flash fallback, where a timeupdate event was generated by all pause commands. Now a pause() only generates a timeupdate event if the media was playing. If paused, a pause(time) only generates a timeupdate event if the time changed. This fix eliminates possible timeupdate handler recusion loops if pause is used in the handler.
  • [2.0.26] Feature Change: Enabled video smoothing in the Flash fallback.
  • [2.0.26] Feature Change: Reduced timeupdate and progress event frequency to 4Hz in the Flash fallback. This now matches the HTML event frequency more closely.
  • [2.0.27] Bug Fix: The destroy method now does a clearMedia. This stops downloads from streams persisting on some browsers.
  • [2.0.28] New Feature: The swfPath option can now be a URL (or a path) to the SWF file with extension .swf. For example, {swfPath:"/scripts/banana.swf"} where you renamed the Jplayer.swf file to "banana.swf".
  • [2.0.29] New Feature: Added the $.jPlayer.event.click event that detects clicks over the poster image, the HTML video and the Flash video. While the event works well, on some browsers the transparent layers of the GUI in full screen mode stop this from working as hoped. As in, the GUI needs to auto-hide and then the clicks can be captured. A different skin could be made to work fine though.
  • [2.0.30] Development Bug Fix: Changing the size and sizeFull options of the audio player using the Flash fallback no longer resizes the zero sized flash as well. Also affected the Flash video solution when the poster was still being displayed.
  • [2.0.30] Development Bug Fix: The audio player with Flash fallback now recovers after the first error event when it is hidden using display:none and then shown, or when display:fixed in Firefox through the full-screen button of a media player.
  • [2.0.31] New Feature: Added the cssSelector entity noSolution (default:".jp-no-solution"), to enable an error message when a NO_SOLUTION error occurs.
  • [2.0.32] AS3 Code Review: Corrected a few minor variable type declarations that were missing and not reported by the compiler. No effect, just better AS3 code.
  • [2.0.32] New Feature: Customized the Flash ContextMenu. Hid the default items and added jPlayer and its Flash version to the menu. The custom menu items have links, but they do not function. Investigation found that the way the Flash is inserted in the page is causing the problem. No solution was found... But it is not important.
  • [2.0.32] AS3 Compiler Change: From now on, the Flex open-source compiler will be used to compile the Flash. Currently using the latest version, Flex 4.5.1.
  • [2.0.33] Bug Fix: Identical consecutive poster image relative URLs were not being shown in OSX Safari. Normally only noticed when audio posters were used, as tracks often share the same poster. The img.src was always converted to absolute, so comparison failed. Solved by comparing with status.media.poster URL.
  • [2.0.33] Development Default Value Change: noFullScreen blocklist defaults changed. Version check of iPad changed to iOS4 and below. Version check removed from: iPhone, iPod and Android phones.
  • [2.0.33] Development Default Value Change: noVolume blocklist defaults changed. Version check removed from: iPad, iPhone, iPod and Android devices.
  • [2.0.34] New Feature: Added the verticalVolume option (default: false) to change the volume display and click calculations from horizontal to vertical.
  • [2.0.35] Development Bug Fix: Fixed GUI animation bug when changing from full-screen to restore-screen. A restore/full screen during the GUI fadeIn period caused the other screen state's GUI to hide, even when its options should not be hiding the GUI in that screen state.
  • [2.0.36] Development Feature Change: Changed $.jPlayer.platform object (Added in [2.0.14]) to enable dot notation on platforms with a space in their name. Whitespace is replaced with underscores. ie., "windows ce" is now "windows_ce".
  • [2.1.0] Bug Fix: When a broken link error occurred in the Flash MP3 player, the progress and timeupdate events were still being generated. The video play button was always being displayed when the error occurred, if present, where it should not be for the mp3 format. The play/pause butttons on the GUI are now correctly reset to the 'paused' state. ie., showing the play button. (NB: The Flash MP4 player did not have this issue.)

jPlayer 2.0.0 Release notes

  • Released: 20th December 2010
  • Initial release of jPlayer 2, the jQuery media player plugin. A complete code rewrite.
  • New feature: Added support for video, making jPlayer capable of playing both media types.
  • New feature: HTML and Flash priority is now defined by solution option. Media format priority is defined by the supplied option
  • New feature: jPlayer now generates events that you can bind handlers to. The ready, error and warning events along with full support for HTML media events generated by the browser. The Flash fallback has a reduced set of events, but covers a good range for an initial release.
  • New feature: Upgraded instancing code to jQuery UI 1.8.7 core widget code.

jPlayer 1.2.0 Release notes

  • Released: 11th July 2010
  • Major Bug: Fixed the operation of jPlayer on the iPad. The solution also fixed the Safari 4/5 (Mac/PC) problems with multiple instances on the same page. Solution uses a single <audio> element per jPlayer, that is re-used and is no longer replaced each time setFile is issued.
  • Major Bug: Corrected the use of playHead and playHeadTime immediately after setFile, where the src of the audio element was never being set. Also had to correct an issue specific to Opera 10.53, where using playHead immediately after setFile was causing NaN values and corrupting the audio element.
  • Minor Bug: Made the play ID's CSS display type set the default display type for both play and pause IDs. The pause ID can now be set to {display:none;} in the CSS. This stops the pause button being displayed briefly when the page loads. If you need different display types for play and pause, then set the cssId for play first, followed by setting pause.
  • Minor Bug: The internally delayed commands created by using playHead, playHeadTime or stop immediately after a setFile when the browser is using HTML5 native audio, are now cleared when issuing a setFile, pause or stop command. Eliminates chained commands from generating unexpected results.
  • Minor Bug: Fixed the volume command for Chrome 4, where it was not working when used between the setFile and play commands. Also fixed when setting the volume multiple times to the same value during the condition.
  • New feature: Changed the security settings of the Flash SWF using System.security.allowDomain('*'). This change allows cross-domain access of the SWF file and enables HTML to remote SWF scripting.
  • New feature: Enabled preloading of the audio file using a new preload constructor option. Default is {preload:'none'}. Options from HTML5 Draft Spec are: none, metadata, auto.
  • New feature: Added a new jPlayer method jPlayer('load') to preload the current audio file.

jPlayer 1.1.1 Release notes

  • Released: 29th April 2010
  • New feature: The click handlers created by jPlayer("cssId",fn,id) now issues a jQuery.blur() to the id that was clicked. This also affects the default cssIds, which use this function internally. This was added so that a link anchor <a> or form elements <input> and <button> would lose focus after being clicked on. ie., otherwise some browsers would highlight it until the user clicked elsewhere on the page.
  • Supporting Skin: The standard skin structure has been revised for accessibility. Added tabindex to the recommended HTML structure and changed controlling elements to <a>. This does not effect jPlayer directly, but since the default skin is widely used, we are mentioning it here in these notes.

jPlayer 1.1.0 Release notes

  • Released: 26th March 2010
  • Fixed major bug: Changed the HTML5 native audio coding so that it works on Opera 10.51. jPlayer now uses the Audio() object, which replaces the old method of inserting an <audio> tag into the page.
  • Fixed major bug: Reviewed the HTMLAudioElement.buffered coding so that it conforms with the current HTML5 Draft Spec. This fixes an issue in Opera 10.51, where the buffered property is being set to a TimeRanges object, but it is not actually being updated by the browser.
  • Fixed minor bug: The initial volume on Chrome 4 was not being set. This had also affected changing the track through jPlayer("setFile",mp3[,ogg]). Both issues are now fixed.
  • Fixed minor bug: When using jPlayer on secure https URLs the Internet Explorer browser was giving a non secured element warning. This issue has been fixed.
  • Fixed minor bug: Corrected the HTML5 behaviour to match the Flash behaviour so that commands affecting playback are ignored before a jPlayer("setFile",mp3[,ogg]) command is issued.
  • Fixed minor bug: The volume is now limited between 0 and 100 percent. Affects the constructor option {volume:percent} and the method jPlayer("volume",percent).
  • Fixed minor bug: The jPlayer("setFile",mp3[,ogg]) command now clears the internal controller on HTML5 browsers.
  • Fixed minor bug: The internally delayed commands created by using playHead, playHeadTime or stop immediately after a setFile when the browser is using HTML5 native audio, are now cleared before delaying a new command. Issuing a play command clears the delayed command.
  • New feature: Added the jPlayer("clearFile") command, which enables clearing the current audio file and disabling the playback commands.
  • New feature: Added JavaScript and Flash SWF file version check. Added internal variables: version, swfVersionRequired and swfVersion. The jPlayer version text has been added to the SWF file, so direct viewing of the SWF shows its version. Check failure will create an alert if {errorAlerts:true}, but no other action is taken.

jPlayer 1.0.0 Release notes

  • Released: 18th February 2010
  • Fixed major Bug: All calls to jPlayer are now passed through a single plugin method called jPlayer(). This breaks backwards compatibility and developers are advised to review the new documentation for the new control mechanism.
  • Fixed major bug: Fixed the problem where some browsers were not always detecting the end of the MP3 file in Flash. Used the Flash Sound.onSoundComplete to raise a flag, which is then captured by the progressBroker(). The values affected by the inaccurate Sound.position property are forced to their correct values. (Affects: playedTime, playedPercentRelative and playedPercentAbsolute.)
  • Fixed major bug: Using playHead, playHeadTime or stop immediately after a setFile when the browser is using HTML5 native audio, now works and does not throw an exception.
  • Fixed major bug: Local server testing on Firefox 3.6 developed a problem when inserting the Flash SWF file into the webpage. This caused the SWF to be loaded twice for an unknown reason. A 100ms delay was added to the initialization of the ExternalInterface.addCallback() declarations and the jPlayerReady signal. This solved the problem with local testing on Firefox 3.6.
  • Fixed minor bug: Event functions default to an empty function. Developer defined functions are checked that they are a function, otherwise an alert box will notify of the problem (when {warningAlerts:true}). Affects the constructor ready() function, onSoundComplete() and onProgressChange().
  • Fixed minor bug: Corrected the HTML5 jPlayer.play event code in IE, setInterval(function, time, argument), since IE only supports setInterval(function, time). (IE does not supports HTML5 at the moment.)
  • Fixed minor bug: When in an HTML5 browser, the setFile command caused the audio file to be pinged before a play command was given. This has been fixed so that the audio file will not be touched until a play command is given.
  • Fixed minor bug: When in an HTML5 browser that supports HTMLMediaElement.buffered.end(), such as Safari 4, stopping or pausing jPlayer while the download was in progress would freeze the load bar. This fix allows the load bar to function correctly, irrespective of whether jPlayer is playing or not.
  • Method renaming: jPlayerId method renamed to cssId to match data structure.
  • Removed Feature: Removed the bufferMsg method and associated code, since this feature was only supported when the Flash component was used.
  • Removed feature: Hover states are no longer managed through the jqjp_hover class. Originally added to correct IE6 :hover not working correctly. All hover states should now be defined using standard :hover CSS.
  • Removed feature: Buffer state is no longer managed through the jqjp_buffer class on the load bar. The original feature would only work when Flash was being used. The feature was removed so that the HTML5 and Flash solutions are identical.
  • New feature: jPlayer now has default CSS Ids built into it. Added customCssId constructor option to control whether the default CSS Ids are used. See documentation for more information. (Default: {customCssId:false}
  • New feature: Added nativeSupport constuctor option to force jPlayer to use the Flash component. (Default: {nativeSupport:true})
  • New feature: Added errorAlerts and warningAlerts constructor options to help debug jPlayer projects. (Default: {errorAlerts:false, warningAlerts:false}
  • New feature: Added graphicsFix constructor option to allow the hidden random number text to be disabled. The random number is used to fix graphical update problems with Safari and Chrome browsers.
  • New feature: All jPlayer configuration information is available via jPlayer("getData", dataName) method. This includes new diagnostic information such as whether jPlayer is playing a track or not. For advanced users, read/write access is provided through $("jpId").data("jPlayer.config"). See documentation for full details.
  • New feature: Changed swfPath logic to accommodate a trailing slash on the path. Eg. {swfPath: "myDir"} is the same as {swfPath: "myDir/"}.
  • New feature: Calls to the Flash are now in a try/catch statement. If the function fails, an alert notifies the developer (when {errorAlerts:true}) that there is a problem with the swfPath and/or Jplayer.swf file location.
  • New feature: The final call of onProgressChange happens after all internal configuration data has been updated. When onSoundComplete occurs, onProgressChange is called once afterwards. The HTML5 and Flash solutions mirror this sequence.
  • Code quality: Refactored code to remove all eval() statements.
  • Code quality: Unbound internal events when a new cssId is given. (Note: cssId was formerly jPlayerId.)
  • Code quality: jQuery selectors are stored internally, so that they are only called once. (Improves performance.)

jPlayer 0.2.5 beta Release notes

  • Released: 25th August 2009
  • Fixed major bug: The HTML canPlayType(MIME) now checks for an empty string and a "no". This corrects a bug that affected new browsers as they adopted changes to the HTML5 Draft Spec. This bug had affected updates to Firefox 3.5 and Safari 4.
  • Fixed bug with the volume constructor option when using HTML5. The new audio file is now initialised with the current volume. The current volume is now stored/maintained in the jPlayer config.
  • Removed all text from the hidden flash class. This was confusing screen readers as they were 'displaying' / 'reading out loud' the hidden flash text. This text was purely for development and testing and has been commented out in the AS2 code.
  • Fixed bug with the audio tag id, config.aid, being used before being defined.
  • Fixed minor bug with the HTML5 initiation call in IE, setTimeout(function, time, argument), since IE only supports setTimeout(function, time). (IE does not supports HTML5 at the moment.)

jPlayer 0.2.4 beta Release notes

  • Released: 1st July 2009
  • Added support for OGG files, where the browser is found to support HTML5 with OGG format. (Currently only Firefox 3.5) The constructor option {oggSupport: true} enables this feature, where an ogg file must then be given as a second attribute to all jPlayer.setFile(mp3, ogg) commands. Priority given as 1) HTML5/OGG, 2) HTML5/MP3, 3) Flash/MP3
  • Fixed bug in Safari 4 with jPlayer.setFile(mp3, [ogg]), where the mp3 file could not be changed from the 1st specified. This bug had affected browsers that supported HTML5 with mp3 format. (Currently only Safari 4)
  • Made the loadbar work with browsers that support HTML5 and have the HTMLMediaElement.buffered DOM object implemented. (Currently only Safari 4)
  • Added jPlayer.jPlayerGetInfo(element) method to enable access to basic diagnostic information.

jPlayer 0.2.3 beta Release notes

  • Released: 22nd June 2009
  • Added HTML5 support for the <audio> element on compliant browsers that can play mp3 format. At release, only the WebKit nightly builds for Mac OS X has implemented HTML5 support for mp3 format.
  • Revised coding of constructor option function ready() along with the methods jPlayer.onSoundComplete(fn) and jPlayer.onProgressChange(fn) to enable the use of $(this) within the user defined functions.
  • Fixed bug with multiple instances, where using: jPlayer.setFile(f) twice, jPlayer.stop(), jPlayer.playHead(p) or jPlayer.playHeadTime(t) on an instance that had never been played using jPlayer.play() would cause all sounds to stop, regardless of the jPlayer instance.
  • Added the constructor option volume to enable setting of the initial volume value.
  • Reviewed the naming of jPlayer's internal methods to improve compatibility with other plugins.

jPlayer 0.2.2 beta Release notes

  • Released: 20th May 2009
  • Renamed jPlayer.change(file) to jPlayer.setFile(file) to avoid jQuery naming conflict with the jQuery.change(fn) event.
  • Appropriate jPlayer methods now return a pointer to $(this), which enables chaining.
  • Removed the jPlayer.changeAndPlay(file) method, as chaining makes this redundent.
  • Added a check for Flash 8 and if not installed, gives a warning and a link to the Flash plugin. Adapted the function checkForFlash from FlashReplace by Robert Nyman.
  • Changed the getMovie() in the plugin to always return the document[fid]. Previously, Internet Explorer would return window[fid] instead. This removes a browser conditional statement, which was found to be redundent since the plugin adds the Flash object to the document definition in IE.
  • Debugged jPlayer.playHead(p) so that it could be used immediately after jPlayer.setFile(file) without needing a jPlayer.play() command prior to it.
  • Added a new method called jPlayer.playHeadTime(t) to make the play head jump to the time defined in seconds.

jPlayer 0.2.1 beta Release notes

  • Released: 4th May 2009
  • Initial beta release version of the jPlayer plugin
  • Released under the MIT licence