v2.2.2
The README has been updated with more examples and various clarifications. PRs/issues with suggestions for further improvements are appreciated.
CHANGEDIncludekeydownevent when unlocking audio (#1417).CHANGEDThe audio state is changed toloadingwhile the player is buffering (#1444).FIXEDLooping sounds wouldn't always work correctly in recent versions of Firefox desktop (#1445).FIXEDDisabled WebM in Safari 14 until bug in Safari is resolved (#1476).FIXEDError when callingseek()on audio that hasn't loaded (#1423).FIXEDBefore a sound had loaded, callingpause()afterseek()didn't have the intended behavior (#1439).
v2.2.1
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).
v2.2.0
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).
- The
xhrWithCredentialsproperty is now included in thexhrproperty object with keywithCredentials.
v2.1.3
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).
v2.1.0
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).
- 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.