- [IMPROVEMENT] Adjust default volume to 100
- [BUGFIX] Update insecure version of underscore
- [IMPROVEMENT] Trigger an event when an HLS stream's ID3 timed metadata changes (#89)
- [CHORE] Remove jQuery dependency, bump other dependencies
- [CHORE] Upgrade to Ember 3.10, improve tests
- [IMPROVEMENT] Add togglePause method to hifi service
- [IMPROVEMENT] Add the long overdue change from @gmurphey to the build process [#43]
- [BUGFIX] Fix duration calculation for HLS streams, fixing [#55]
- [BUGFIX] Move ember copy to dependencies [#54]
- [CHORE] replace deprecated Ember.Copy
- [CHORE] replace deprecated EmberMap
- [CHORE] add missing semicolons #52
- [BUGFIX] moves
pre-load
event so it doesn't interfere withsoundCache
keys
- [IMPROVEMENT] Adds
pre-load
event to hifi service with successful strategy
- [CHORE] Add some docs
- [IMPROVEMENT] Adds
currentMetadata
computed property is updated synchronously with calls toplay
- [IMPROVEMENT] Upgrade to ember 2.17
- [IMPROVEMENT] Adds a
positionInterval
option so consuming apps can control how oftenhifi.position
is updated. This allows e.g. a smoother position animation for shorter audio.
This release is just a version number change so I can publish to npm. 1.12.0 was already published accidentally on June 27.
- [IMPROVEMENT] Pass config-level
options
object to Howler instances during init
- [BUGFIX] Native Audio sounds weren't firing their
audio-loaded
event. Fix it!
- [BUGFIX] Stop dummyHifi ticking after an audio-end signal, which can cause audio-end signals to continue sending for all eternity leaving tests to wait.
- [BUGFIX] Remove IE11 workarounds. The issue these corrected has since been fixed by more robust event handling by hifi. This also fixes issues with upstream apps waiting for
pause
events, since finished sounds would also fire pause events.
- [BUGFIX] Fix a test by using
checkWaiters
- [IMPROVEMENT] Docs deploys should be more reliable now with the
--pure-lockfile
flag - [IMPROVEMENT] Remove unneeded ember-power-select addons
- [IMPROVEMENT]
ember-hifi
no longer adds bower dependencies. Thanks to @gmurphey for #41. See Upgrading for more.
- Quieted most of the logging messages for how to handle special urls when using dummyHifi
- [IMPROVEMENT] Improved dummyHifi service to better mimic a real sound.
- [IMPROVEMENT] Added
new-load-request
andcurrent-sound-interrupted
on the service. - [IMPROVEMENT] Added
audio-position-will-change
,audio-will-rewind
, andaudio-will-fast-forward
on the Base sound. - [BUGFIX] Fixed opera bug where native audio element with a stream source didn't report as having Infinity duration
- [BUGFIX]
hifiNeeds
test helper didn't include all needed services (it was missingservice:poll
)
- [IMPROVEMENT] Changed API (and documented)
current-sound-changed
to(currentSound, previousSound)
from({previousSound, currentSound})
to be more consistent with the other APIs. - [BUGFIX] Make sure events of the not-yet-current sound are relayed through hifi. Previously current sound would be set on
audio-played
, and thataudio-played
event wasn't relayed through the service. - [BUGFIX] Fix pause event so it gets triggered properly when using a shared audio element. Previously, when ownership of the audio element was transferred between sounds, the sound releasing control did not properly trigger a pause event on the service.
- Upgrade to eslint and yarn.
- #35 [IMPROVEMENT] - Add another method to get around iOS autoplay restrictions. If on mobile, we now add a document
touchstart
listener that will trigger a play on touch if the sound hasn't played yet. - #34 [IMPROVEMENT] - Add service level 'current-sound-changed' event, and allowed metadata to be attached to sound at play time so consumers can retrieve it later
- #31 [BUGFIX] - Wire up DummyConnection to fire real events
- f4678a2 Re enable canary because it passes now
- #32 [IMPROVEMENT] - Don't resolve
.play
until the chosen sound actually fires itsaudio-played
event, so that the service can properly expose its aliased computed props. - 2deba6d [IMPROVEMENT] - Tweak
included
hook so thatember-hifi
can be nested under other addons.
- [BUGFIX] Fix my goof from yesterday and use preload='none' instead of not having the src, since IE freaks out about the latter.
- [BUGFIX] Resolve issue where two requests would happen for one piece of audio when using a shared audio element. We don't save the src on the shadowAudio element when saving audio state anymore, and it turns out that wasn't instantly resuming audio when switching between audio sources like we thought it was anyway.
- [BUGFIX] Fixed error that was getting thrown in the logging and causing a strange error when debugging was enabled
- [BUGFIX] Fix out of sync loading indicators by forcing notifyPropertyChanges with isLoading.
- [BUGFIX] Don't autoplay the blank audio element on desktop browsers if using a single audio element. IE can't deal with it, and audio will start playing before events are wired up. Also handle case where IE errors after trying to set
.currentTime
on the audio element. - [IMPROVEMENT] - Refactoring debug logger and included better debug messages, especially around transferring of audio control when using a single audio element.
- [BUGFIX] Don't set isLoading flag to false right away after retreiving a sound from the cache. This fixes a problem where after resuming audio from a stopped stream
hifi
would reportisLoading = false
, making buttons show up as playing when it was really loading stuff up again. - Updated ember try scenarios and fix some deprecation warnings.
- 3433e18 -
alwaysUseSharedAudioElement: true
in the emberHIfi config will now force hifi to use a single shared audio element all the time, instead of just on mobile browsers as is done normally. This resolves an issue with cookied content providers that limit one connection per client (in this case, adswizz on wnyc) where without this option audio might stall out when switching between different audio resources. - set
isDevelopingAddon
tofalse
, since this is released. - Fixed some test failures on ember-beta and ember-canary
- dbc80f4 [BUGFIX] - gets rid of 'audio-stopped' event, which wasn't in use. replace it with 'audio-ended' and make sure Howler sends the correct event. Thanks to @aaronfischer for bringing it up, even though the bug he was experiencing turned to be a server-side thing.
- 0574a94 [BUGFIX] - only track internal audio element state if we're on mobile. fixes bad playback behavior on firefox.
- [IMPROVEMENT] - Allow passing in of event callbacks. Useful for testing.
- Update to ember 2.9.1
- start dummy connections with a 0 position
- 3a9438 [BUGFIX] - Handle audio position overruns
- 460149 [IMPROVEMENT] -
.play
on the Service and Connections accepts an options hash. The only option currently supported isposition
, so you cansound.play({position: 0})
to restart a sound. - Change when some properties are updated for snappier feedback
- #18 [IMPROVEMENT] - Adds a
SharedAudioAccess
library to manage access to a singleton HTML5 Audio element on mobile devices. This is due to the long-standing iOS issue with callingplay
on an audio element that is not in direct response to a user action like aclick
ortap
. This allows us to do things like playlist playback on mobile. - Other improvements: include silent MP3 files for testing, fix soundcache issue caching identical sounds more than once.
- Attaches failures to load
catch
case
- Fixes
percentLoaded
attr on native audio connection
- #17 [BUGFIX] - Improves stream pausing
- Test & deprecation warning cleanup
- 9fd95bb Manually manage
isLoading
state in a couple spots
-
Add 'isErrored' boolean property and 'error' string property to sounds as a first step of being able to recover from play errors
-
Go back to setting the
src
property on native audio to an empty string instead of a blob, and just mute the audio errors when we've explicitly stopped loading -
#15 [BUGFIX] - Cache sounds correctly when the url is specified as a hash with the mimeType.
- Fixing event relaying logic so that handlers won't be registered more than once, causing multiple relay calls to be sent for for a single sound event. This was problematic with the
audio-ended
event, causing tracks to get skipped in a playlist.
- Set isLoading flag when reloading audio after being stopped
-
Added a 'loadeddata' event listener to Native Audio, since Firefox doesn't trigger a 'canplay' until after you've asked the audio to play.
-
Suppressed occasional invalid audio errors while Native Audio was stopped and the src attribute was changed to prevent loading.
- Renamed some internal services and added a unit test helper for adding
needs
(so consumers don't have to know about the internal services) since Ember doesn't have a great solution for that yet.
- Explicitly stop the audio after playback has ended for IE11, who never learned to communicate properly.
- Improved logic to prevent browser from loading a paused stream on the native audio connection. Instead of setting src to empty, we now set it to an empty blob so the audio element won't throw an error on pause (on mobile), which caused issues when switching between different audio streams.
- Increased timeout for mobile click blocker to 2s due to some false positives
- Added toggleMute method on the service for easy mute toggling
- #11 [BUGFIX] Use the ember run loop so the pause event gets fired correctly when stopping NativeAudio.
- #12 [BUGFIX] Fix issue with .aac files returning a mime-type of audio/x-aac, then causing the (Native Audio) audio element to think it can't play aac files
- #9 [BUGFIX] Pause streams by setting
src
attribute of Nativ Audio element to the empty string rather than usingremoveAttribute
. - #10 Use mime types to determine connection support for a given audio url. If a mime type cannot be derived, try it anyway but warn the user about performance implications.
- Increases timeout on CircleCI for test runs
- Removes
ember-poll
as a duplicate dependency
- Skips 1.0.1 because I've never used
npm publish
before. - Updates package.json with correct
ember-poll
dependency and adds a repo URL.
- Initial release. See README.md for more.