34 KiB
2.2.1 (Oct 25, 2020)
FIXEDThe latest Safari 14 changed how WAV support was detected (#1415).FIXEDEdge case that could cause an infinite loop while fading (#1369).FIXEDCallingseekwithout a seek value while a file was still loading no longer adds it to the queue and correctly returns0(#1189).FIXEDCorrectly handle finite audio files that returnInfinityduration in Safari (#658).
2.2.0 (May 17, 2020)
ADDEDNewxhrproperty that allows setting custom headers (such as for auth), changing thewithCredentialssetting and specifying the HTTP method for the request. These only apply to Web Audio (#997).ADDEDNewHowler.stop()global stop method to stop all sounds at once (#1308).ADDEDSupport form4baudio format (#1170).CHANGEDAllow passingmetadatastring topreloadoption to only preload the metadata (#1140).FIXEDCorrectly handle AudioContext interrupted state causing stucksuspendingstate (#1106).FIXEDThevolumemethod would sometimes return incorrect values when using very shortfadelengths (#1045).FIXEDError thatHowlerGlobalwas not defined when usingjsdom-global(#1331).FIXEDMemory leak in Safari when an audio context can't be unlocked (#1338).
Breaking Changes
- The
xhrWithCredentialsproperty is now included in thexhrproperty object with keywithCredentials.
2.1.3 (December 24, 2019)
FIXEDDon't try to obtain HTML5 audio if there is no audio support (#1191).FIXEDThe x/y/z orientations for the top of the listener weren't being set properly (#1221).FIXEDRace condition that could prevent looping audio from always looping (#1225).FIXEDRace condition that could cause the main volume to be reset to 1 if called beforeunlockAudio(#1210).
2.1.2 (April 19, 2019)
FIXEDRemoved browser check for auto play unlock since all major browsers now implement this.FIXEDLive streams now stop downloading when they are stopped, also fixing issue in Chrome with stopping twice (#1129).FIXEDPrevent error in Edge whenAudioisn't supported (#1147).
2.1.1 (December 21, 2018)
FIXEDRegression that broke simple play/pause usage in certain edge cases (#1101).FIXEDLoading and unloading multiple Howls with the same src could cause them all to unload (#1103).
2.1.0 (December 12, 2018)
ADDEDHowler now maintains a general pool of HTML5 Audio nodes that are unlocked on first user input, which fixes issues with subsequent HTML5 Audio plays not working (#1008).ADDEDNew globalhtml5PoolSizeoption that allows setting the default size of the HTML5 Audio object pool (#1008).CHANGEDSince locking of audio is no longer mobile-only,mobileAutoEnablehas been renamed toautoUnlock.FIXEDPlaying a sound with locked audio in Chrome or elsewhere could causeplaying()to returntrue(#939).FIXEDCorrectly usesetPositioninstead ofsetOrientationin Safari (#1033).FIXEDPrevent error onseekordurationbeing negative (#1034).FIXEDForcefadevalues to be numbers to prevent errors (#1027).FIXEDAnInvalidStateErrorcould sometimes be thrown in Internet Explorer (#1052).FIXEDPrevent silent failure ofAudioContextcreation in Safari (#1021).FIXEDChangingrateandseekon a paused sound could causeseekto end up at the wrong position (#1088).FIXEDCallingplaytwice before a sound had loaded could lead to both sounds having the sameID(#1060).
Breaking Changes
- If you are directly setting
Howler.mobileAutoEnable(it defaults to true), then you should change this toHowler.autoUnlock. - The new HTML5 Audio object pool shouldn't change anything for 99% of use-cases, but if for whatever reason you don't want to use the pool, you can set
html5PoolSizeto 0 to bypass using the pool.
2.0.15 (August 24, 2018)
FIXEDErrors with touch events and blocked click events in Chrome (#1003 #1011 #1025 #1026).FIXEDAudio decoding error wasn't always handled correctly (#1019).FIXEDPotential error during playback in Internet Explorer 11 (#1016).
2.0.14 (July 12, 2018)
CHANGEDAuto unlocking of audio now runs on Chrome to fix issue with HTML5 Audio needing user interaction.CHANGEDAdded a newunlockevent that is fired when the auto unlock happens.CHANGEDAplayerrornow gets fired when HTML5 Audio fails to play due to lack of user interaction.FIXEDImproved HTML5 Audio play lock checks to prevent race conditions (#995).FIXEDIntermittent error in Chrome when decoding audio data (#988).FIXEDError when trying to loop spatial audio without a sprite (#985).FIXEDInstantly fire theendevent when a sound is seeked past its duration (#963).FIXEDAnother issue in Safari where spatial orientation was throwing an error.
2.0.13 (June 22, 2018)
FIXEDPreventstopevent from firing alongsideendwhen using HTML5 Audio (#974).FIXEDCorrectly reset aSoundafter using spatial audio (#962).FIXEDRemove aHowlfrom cache when unloaded after failing to load (#978).FIXEDRace condition could lead to error when cleaning the buffer.
2.0.12 (May 9, 2018)
FIXEDThe previous Chrome deprecation fixes broke spatial positioning in Safari.
2.0.10 (May 5, 2018)
FIXEDFixed another Chrome deprecation warning when using panning methods (#923).FIXEDPlayback rate wasn't working correctly in Internet Explorer when defined in theHowlconstructor (#936).FIXEDLooped audio would only play twice in Internet Explorer (#921).
2.0.9 (February 10, 2018)
FIXEDMore accurate HTML5 Audioendtimer and fix for Firefox streams ending early (#883).FIXEDPreventplayevents from duplicating in certain instances (#899).FIXEDAdd second parameter to HTML5 Audio playback promise to fix Safari error (#896).FIXEDRefactored the internal queue system to fix various edge cases.
2.0.8 (January 19, 2018)
CHANGEDFades now use elapsed time to be more accurate when intervals are inconsistent (#885).CHANGEDImprove timing of short fades (#884).FIXEDFixed another Chrome deprecation when setting playback rate.FIXEDPreventonplayfrom firing when first settingstereovalue (#843).
2.0.7 (December 18, 2017)
FIXEDAccidentalconstwas included in the previous version.
2.0.6 (December 15, 2017)
FIXEDReplaced deprecatedgain.valueandgain.pan.valuewithsetValueAtTime(#856).FIXEDAudio sprites weren't ending correctly in Internet Explorer 11 (#841).FIXEDCorrectly set group volume when fading (#539).FIXEDCancelfadeon sound whenmuteis called (#666).FIXEDUncaught error when play() request was interrupted by a call to pause() (#835).FIXEDIncorrect reference to global_scratchBuffer(#834).
2.0.5 (October 6, 2017)
ADDEDAdd support forwithCredentialsto Web Audio XHR requests (#610).ADDEDAddplayerrorevent for when mobile HTML5 audio is unable to play (#774).FIXEDRefactor fade method to eliminate bind memory allocations (no change to API).FIXEDPrevent seeking after sound has been unloaded (#797).FIXEDCheck forpausedinstead ofendedon HTML5 end check to correctly handle data URI's (#775).FIXEDFix unlocking of mobile audio on iOS when user swipes instead of taps (#808).FIXEDpannerAttrvalues can now be set via object as the documentation originally specified.FIXEDVarious corrections and improvements to the spatial audio documentation.
2.0.4 (June 9, 2017)
CHANGEDRemoved theresumingstate, which wasn't actually being used and was leading to a bug on Android (#679).CHANGEDAny playback initiated before the sound has loaded will now go into the queue to fix various race conditions (#714).FIXEDCorrectly initialize an AudioContext with the global mute status (#714).FIXEDAudioContext unlocks on user interaction within a cross-domain iframe on Android Chrome (#756).FIXEDStopping/pausing a group of sounds now behaves as expected in edge cases (#734).FIXEDSound ID's now start at 1000 instead of 0 to avoidratecollisions (#764).FIXEDPrevent unknown mime errors on Internet Explorer when unloading a sound (#720).FIXEDCorrectly clean up error event listeners (#720).FIXEDAudio clipping in Internet Explorer when network latency is present with HTML5 Audio (#720).FIXEDAllow passing just an event and ID to turn off listener (#767).FIXEDnpmwarning caused by invalid license definition (#763).
2.0.3 (March 11, 2017)
CHANGEDUnloading a sound no longer fires theendevent (#675).FIXEDRemovesetTimeoutwrapper on HTML5playcall to fix issues on mobile browsers (#694).FIXEDRemove rare possibility of duplicate sound ID's by using global counter (#709).FIXEDSupport fades with 2+ decimal places (#696).FIXEDError in Firefox caused by invalid silent WAV onunload(#678).FIXEDCheck for and warn about missing file extension (#680).FIXEDRegression in Firefox relating to spatial audio (#664).
2.0.2 (December 4, 2016)
FIXEDWait to begin playback until AudioContext has resumed (#643).FIXEDRunnoAudiocheck on initial setup instead of waiting for firstHowl(#619).FIXEDAddplayevent to start of queue whenautoplayis used (#659).FIXEDMake sureseekanddurationare always >= 0 to prevent errors (#682).FIXEDAudio test wouldn't work in IE11 Enhanced Security Mode (#631).FIXEDEnsure AudioContext exists onunload(#646).FIXEDAlways fire pause event even if sound is already paused (#639).
2.0.1 (October 14, 2016)
ADDEDSupport for FLAC audio files.FIXEDImprove fading performance when short fade times are used (#621).FIXEDCorrectly handle fades from 0 to 0 volume (#575).FIXEDPrevent a load error from blocking all future playback (#613).FIXEDResetnoAudiotofalsewhen a sound is unloaded (#617).FIXEDStop a sound even if it is not playing (#595).FIXEDEmitstopevent before returning fromstop(#616).FIXEDImprove codec checks by removingx-prefix (#576).FIXEDSet correct loop start/end when callingloopon a sprite (#604).
2.0.0 (July 19, 2016)
This major release contains just a few breaking changes outlined below. Howler.js has been rewritten from the ground up using the knowledge and work since the initial release. There's a long list of additions and improvements, which I urge you to read through as the library has evolved quite a bit over this time.
The biggest change is how you should think about your audio when using howler.js. There is now the concept of global (Howler), group (Howl) and single sound (Sound). Each sound that is played gets its own Sound object that can be manipulated, giving much greater control over playback, whether using sprites or not. Howl method calls can then apply to one sound or all in the group.
Howler (global) ->
Howl (group) ->
Sound (single)
Howler.js now also has the concept of plugins. The core represents 100% compatibility across hTML5 Audio and Web Audio, adhering to the initial goals of the library. There is also a new Spatial Plugin that adds 3D and stereo audio support only available in the Web Audio API.
Read more about the update in this blog post.
Breaking Changes
- The
bufferoption is now namedhtml5. Use this to force HTML5 Audio usage. - The
urlsoption is now namedsrcto specify the audio file(s) to play. - The
posmethod has been renamed toseek.
// Change the seek position of a sound (in seconds).
sound.seek(10);
muteandunmutehave been consolidated intomute.
// Mute a sound (or all sounds).
sound.mute(true);
Howler.mute(true);
// Unmute a sound (or all sounds).
sound.mute(false);
Howler.mute(false);
- The
playmethod no longer takes a callback and immediately returns the playback sound id (this means you can no longer chain onto theplaymethod, but all others work the same).
// Get sound id for a specific playback.
var id = sound.play();
// Pause this playback.
sound.pause(id);
- The deprecated
fadeInandfadeOutmethods have been removed in favor of the singlefademethod.
// Fade in a sound.
sound.fade(0, 1, 1000);
// Fade out the sound once the previous fade has ended.
sound.once('fade', function(){
sound.fade(1, 0, 1000);
});
New Features
- Lots of general code cleanup, simplification and reorganization.
- Howler.js is now modularized. The core represents the initial goal for howler.js with 100% compatibility across HTML5 Audio and Web Audio. The spatial plugin adds spatial and stereo support through Web Audio API.
- The new structure allows for full control of sprite playback (this was buggy or didn't work at all before).
- New
oncemethod to setup event listeners that will automatically remove themselves once fired. - New
playingmethod that will returntrueif the specified sound is currently playing. - New
durationmethod that will return the duration of the audio source. - New
statemethod that will return the loaded state of the Howl. - New
preloadoption to allow disabling the auto-preload functionality. - New events:
fade,stop,mute,volume,rate,seek. - New
ratemethod that allows changing playback rate at runtime. - New global
unloadmethod that unloads all active Howls and resets theAudioContextto clear memory. - New
pooloption to allow setting the inactive sound pool size (for advanced use, still defaults to 5). - Support for playback of Dolby Audio files.
- Support for .webm extension in addition to .weba.
- Support for playback of CAFF audio files.
- (Spatial) New
Howlerlistener methodsstereo,posandorientation. - (Spatial) New
Howlmethodsstereo,pos,orientationandpannerAttrto control stereo and spatial audio of single sounds or groups of sounds. - (Spatial)
pannerAttrallows for control ofconeInnerAngle,coneOUterAngle,coneOuterGain,distanceModel,maxDistance,panningModel,refDistanceandrolloffFactor. - Third parameter to
on,onceandoffto allow listening or removing events for only a specific sound id. - The following methods now alter all sounds within a
Howlgroup when noidis passed:pause,stop,volume,fade,mute,loop,rate. - New codec recommendations and notes have been added to the documentation.
- Web Audio AudioContext now automatically suspends and resumes to lower processing and power usage.
Bug Fixes
- Improved the
extoption and made it especially usefully for playing streams (for example, SoundCloud). - The
fademethod now uses native Web Audio fading when in that mode. - Fades are now automatically stopped when a new one is started, volume is changed or the sound is paused/stopped.
- Moved any needed try/catch statements into own methods to prevent de-optimization in V8 and others.
- Automatically checks for disabled audio in Internet Explorer.
- An internal event queue is now used to fix issues caused by multiple actions pre-load.
- When using Web Audio, a panner node is only added when spatial audio is used.
- The
rateoption now changes the playback rate on both Web Audio and HTML5 Audio. - The event system has been overhauled to be more reliable.
- Methods called before a sound has loaded no longer cause events to stick in the queue.
- The
endevent correctly fires at the end of each loop when using Web Audio. - Several issues with playback of sprites.
- Several issues with playback timing after pausing sounds.
- Improved support for seeking a sound while it is playing.
- When playback rate is changed, the
endevent now fires at the correct time. - Potential memory leak when using the
unloadmethod. - Calling
pauseon a sound that hasn't yet loaded now works correctly. - Muting a sound while it is fading now works.
- Playback of base64 encoded sounds in Internet Explorer 9.
- MIME check for some base64 encoded MP3's.
- Now tries to automatically unlock audio on mobile browsers besides Mobile Safari.
- Falls back to HTML5 Audio when loading an HTTP file on an HTTPS page (avoids Mixed Content errors).
- Stopping a stream is now possible, along with various other fixes.
- Audio on Chrome for Android no longer gets stuck after a period of inactivity.
- Crash in iOS <9 webview.
- Bug in iOS that can cause audio distortion when opening/closing browser.
- Only setup AudioContext after first
Howlis setup so that background audio on mobile devices behaves as expected.
1.1.29 (January 22, 2016)
ADDEDError messages added onto eachloaderrorevent (thanks Philip Silva).FIXEDVarious edge-case bugs by no longer comparing functions by string in.off()(thanks richard-livingston).FIXEDEdge case where multiple overlapping instances of the same sound won't all fireend(thanks richard-livingston).FIXEDendevent now fires correctly when changing therateof a sound.
1.1.28 (October 22, 2015)
FIXEDTypo with iOS enabler that was preventing it from working.
1.1.27 (October 2, 2015)
FIXEDAutomatic audio unlocking on iOS 9 by switching totouchendfromtouchstart.
1.1.26 (April 21, 2015)
FIXEDLooping in Chrome due to a change in the Web Audio spec implemented in Chrome 42.
1.1.25 (July 29, 2014)
ADDEDTheAudioContextis now available on the globalHowlerobject (thanks Matt DesLauriers).FIXEDWhen falling back to HTML5 Audio due to XHR error, delete cache for source file to prevent multi-playback issues.
1.1.24 (July 20, 2014)
FIXEDImproved performance of loading files using data URIs (thanks Rob Wu).FIXEDData URIs now work with Web Audio API (thanks Rob Wu).FIXEDOmitting the second parameter of theoffmethod now correctly clears all events by that name (thanks Gabriel Munteanu).FIXEDFireendevent when unloading playing sounds.FIXEDSmall error fix in iOS check.
1.1.23 (July 2, 2014)
FIXEDPlaying multiple sprites rapidly with HTML5 Audio cause the sprite to break due to a v1.1.22 update.FIXEDDon't run the iOS test if there is no audio context, which prevents a breaking error.
1.1.22 (June 28, 2014)
ADDEDHowler will now automatically attempt to unlock audio on iOS (thanks Federico Brigante).ADDEDNewcodecsglobal Howler method to check for codec support in the current browser (thanks Jay Oster).FIXEDEnd timers are now correctly cleaned up when a sound naturally completes rather than being forced to stop.
1.1.21 (May 28, 2014)
ADDEDSupport for npm and bower (thanks Morantron).ADDEDSupport for audio/aac, audio/m4a and audio/mp4 mime types (thanks Federico Brigante).FIXEDCalculation of duration after pausing a sprite that was sometimes causing unexpected behavior.FIXEDClear the event listener when creating a new HTML5 Audio node.
1.1.20 (April 18, 2014)
ADDEDWhen using Web Audio API, the panningModel now defaults to 'equalpower' to give higher quality sound. It then automatically switches to 'HRTF' when using 3D sound. This can also be overridden with the newmodelproperty.FIXEDAnother bug causing issues in CocoonJS (thanks Olivier Biot).FIXEDIssue that could have caused invalid state errors and a memory leak when unloading in Internet Explorer.FIXEDThe documentation has been updated to include therateproperty.
1.1.19 (April 14, 2014)
ADDEDAdded CocoonJS support (thanks Olivier Biot).FIXEDSeveral issues with pausing sprite instances by overhauling how end timers are tracked and cleared internally.FIXEDPrevent error when using a server-side require where window is absent (thanks AlexMost).
1.1.18 (March 23, 2014)
FIXEDMuting a looping sound now correctly keeps the sound muted when using HTML5 Audio.FIXEDWrap AudioContext creation in try/catch to gracefully handle browser bugs: Chromium issue (thanks Chris Buckley).FIXEDListen for HTML5 Audio errors and fireloaderrorif any are encountered (thanks digitaltonic).
1.1.17 (February 5, 2014)
FIXEDAnother bug in Chrome that would throw an error when pausing/stopping when a source is already stopped.ADDEDCommonJS support for things like Browserify (thanks Michal Kuklis).ADDEDSupport for playback mp4 files.ADDEDExpose thenoAudiovariable to the globalHowlerobject.FIXEDA rounding error that was causing HTML5 Audio to cut off early on some environments.FIXEDTheonendcallback now correctly fires when changing the pos of a sound after it has started playing and when it is using HTML5 Audio.
1.1.16 (January 8, 2014)
FIXEDPrevent InvalidStateError when unloading a sound that has already been stopped.FIXEDBug in unload method that prevented the first sound from being unloaded.
1.1.15 (December 28, 2013)
FIXEDBug that prevented master volume from being set to 0.FIXEDBug that prevented initial volume from being set to 0.FIXEDUpdate the README to accurately showautoplayas defaulting tofalse.FIXEDCallloaderrorwhen decodeAudioData fails.FIXEDBug in setting position on an active playing WebAudio node through 'pos(position, id)' (thanks Arjun Mehta).FIXEDAn issue with looping after resuming playback when in WebAudio playback (thanks anzev).
1.1.14 (October 18, 2013)
FIXEDCritical bug fix that was breaking support on some browsers and some codecs.
1.1.13 (October 17, 2013)
FIXEDCode cleanup by removing redundantcanPlayobject (thanks Fabien).FIXEDFile extensions are now detected correctly if there is a query string with dots in the filename (thanks theshock).FIXEDFireonloaderrorif a bad filename is passed with theurlsproperty.
1.1.12 (September 12, 2013)
UPDATEDChanged AMD definition to anonymous module and define it as global always (thanks Fabien).ADDEDAdded therateproperty toHowlobject creation, allowing you to specify the playback rate. This only works when using Web Audio (thanks Qqwy).FIXEDPrevent some instances of IE9 from throwing "Not Implemented" error (thanks Tero Tilus).
1.1.11 (July 28, 2013)
FIXEDBug caused by trying to disconnect audio node when using HTML5 Audio.FIXEDCorrectly return the sound's position when it is paused.FIXEDAnother bug that caused looping sounds to not always correctly resume after a pause.
1.1.10 (July 26, 2013)
ADDEDNewunloadmethod to destroy a Howl object. This will stop all associated sounds instantly and remove the sound from the cache.FIXEDWhen using Web Audio, loop from the correct position after pausing the sound halfway through.FIXEDAlways return a number when getting a sound's position with theposmethod, and always return the reference to the sound when setting a sound that hasn't loaded.
1.1.9 (July 11, 2013)
FIXEDIssue where calling thevolumemethod before a sound had loaded prevented the volume from being changed.
1.1.8 (July 10, 2013)
FIXEDurlsmethod now works again, and can take a string rather than an array if only one url is being passed.FIXEDMakenode.playasync when not using webAudio (thanks Alex Dong).
1.1.7 (May 30, 2013)
FIXEDHotfix for a missing parameter that somehow missed the 1.1.6 commit in global muting.
1.1.6 (May 30, 2013)
ADDEDA generalfademethod that allows a playing sound to be faded from one volume to another.DEPRECATEDThefadeInandfadeOutmethods should no longer be used and have been deprecated. These will be removed in a future major release.FIXEDNo longer require the sprite parameter to be passed into theplaymethod when just passing a callback function.FIXEDCleaned up global muting code. (thanks arnorhs).
1.1.5 (May 3, 2013)
ADDEDSupport for the Ogg Opus codec (thanks Andrew Carpenter).ADDEDSemver tags for easy package management (thanks Martin Reurings).ADDEDImprove style/readability of code that discovers which audio file extension to use (thanks Fabien).ADDEDTheonendevent now passes the soundId back as the 2nd parameter of the callback (thanks Ross Cairns).FIXEDA few small typos in the comments. (thanks VAS).
1.1.4 (April 28, 2013)
FIXEDA few small bugs that broke global mute and unmute when using HTML5 Audio.
1.1.3 (April 27, 2013)
FIXEDBug that prevented global mute from working 100% of the time when using HTML5 Audio.
1.1.2 (April 24, 2013)
FIXEDCallingvolumebeforeplaynow works as expected.FIXEDEdge case issue with cache cleaning.FIXEDLoad event didn't fire when new URLs were loaded after the initial load.
1.1.1 (April 17, 2013)
ADDEDonloaderrorevent fired when sound fails to load (thanks Thiago de Barros Laceda).ADDEDformatproperty that overrides the URL extraction of the file format (thanks Kenan Shifflett).FIXEDAMD implementation now only defines one module and removes global scope (thanks Kenan Shifflett).FIXEDBroken chaining withplaymethod.
1.1.0 (April 11, 2013)
ADDEDNewpos3dmethod that allows for positional audio (Web Audio API only).ADDEDMulti-playback control system that allows for control of specific play instances when sprites are used. A callback has been added to theplaymethod that returns thesoundIdfor the playback instance. This can then be passed as the optional last parameter to other methods to control that specific playback instead of the whole sound object.ADDEDPass theHowlobject reference as the first parameter in the custom event callbacks.ADDEDNew optional parameter in sprite definitions to define a sprite as looping rather than the whole track. In the sprite definition array, set the 3rd value to true for looping (spriteName: [pos, duration, loop]).FIXEDNow all audio acts as a sound sprite internally, which helps to fix several lingering bugs (doesn't affect the API at all).FIXEDImproved implementation of Web Audio API looping.FIXEDImproved implementation of HTML5 Audio looping.FIXEDIssue that caused the fallback to not work when testing locally.FIXEDFireonendevent at the end offadeOut.FIXEDPrevent errors from being thrown on browsers that don't support HTML5 Audio.FIXEDVarious code cleanup and optimizations.
1.0.13 (March 20, 2013)
ADDEDSupport for AMD loading as a module (thanks @mostlygeek).
1.0.12 (March 28, 2013)
ADDEDAutomatically switch to HTML5 Audio if there is an error due to CORS.FIXEDCheck that only numbers get passed into volume methods.
1.0.11 (March 8, 2013)
ADDEDExposedusingWebAudiovalue through the globalHowlerobject.FIXEDIssue with non-sprite HTML5 Audio clips becoming unplayable (thanks Paul Morris).
1.0.10 (March 1, 2013)
FIXEDIssue that caused simultaneous playback of audio sprites to break while using HTML5 Audio.
1.0.9 (March 1, 2013)
ADDEDSpec-implementation detection to cover new and deprecated Web Audio API methods (thanks @canuckistani).
1.0.8 (February 25, 2013)
ADDEDNewonplayevent.ADDEDSupport for playing audio from base64 encoded strings.FIXEDIssue with soundId not being unique when multiple sounds were played simultaneously.FIXEDVerify that an HTML5 Audio Node is ready to play before playing it.FIXEDIssue withonendtimer not getting cleared all the time.
1.0.7 (February 18, 2013)
FIXEDCancel the correct timer when multiple HTML5 Audio sounds are played at the same time.FIXEDMake sure howler.js is future-compatible with UglifyJS 2.FIXEDDuration now gets set correctly when pulled from cache.FIXEDTiny typo in README.md (thanks @johnfn).
1.0.6 (February 8, 2013)
FIXEDIssue with global mute calls happening before an HTML5 Audio element is loaded.
1.0.5 (February 7, 2013)
FIXEDGlobal mute now also mutes all future sounds that are played untilunmuteis called.
1.0.4 (February 6, 2013)
ADDEDSupport for WebM audio.FIXEDIssue with volume changes when on HTML5 Audio.FIXEDRound volume values to fix inconsistencies in fade in/out methods.
1.0.3 (February 2, 2013)
FIXEDMake sureselfis always defined before returning it.
1.0.2 (February 1, 2013)
ADDEDNewoffmethod that allows for the removal of custom events.FIXEDIssue with chaining theonmethod.FIXEDSmall typo in documentation.
1.0.1 (January 30, 2013)
ADDEDNewbufferproperty that allows you to force the use of HTML5 on specific sounds to allow streaming of large audio files.ADDEDSupport for multiple events per event type.FIXEDIssue with method chaining before a sound was ready to play.FIXEDUseselfeverywhere instead ofthisto maintain consistency.
1.0.0 (January 28, 2013)
- First commit