You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* instead of the ArrayBuffer use the MediaElementAudioSourceNode, make it optional to still use the ArrayBuffer
100
+
* cache (preload) AudioBuffers in indexeddb, let the user set the amount of cached AudioBuffers, remove from cache by least used and by date when cache is full
101
+
* cache songs for offline mode? indexdb is not very big, check if doable because saving a playlist of songs might exhaust the free space
*[abort](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort) the loading of the sound if the user clicks play and then pause (or stop / next / previous) before the end of the buffering process
91
-
* allow cross fading songs "on end" if it's the next song in a playlist
106
+
* replace XMLHttpRequest with fetch?
107
+
* allow cross fading songs "on end" if it's the next song in a playlist (or just fade out / fade in)
92
108
* currently the "find song in queue" can't retrieve songs by queue index, is this useful anyway?
93
-
* implement suspend and resume: ctx.suspend() and resume of the context on pause / stop or if for some time no sound was played? ... to free device resources, as suspend returns a promise, does this mean suspending and resuming takes time? if so how much time does it take, based on that information we can decide when and how often we should resume / suspend
94
-
* (?) use the html audio element for backwards compatibility for IE11 and mobile android devices? [caniuse audio-api](http://caniuse.com/#feat=audio-api)
109
+
* use suspend and resume if for some time no sound was played? ... to free device resources. As suspend returns a promise, does this mean suspending and resuming takes time? if so how much time does it take, based on that information we can decide after how much time it makes sense to suspend the ctx to save device resources
95
110
* use the [requestAnimation](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) frame or the [requestidlecallback](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback) instead of setInterval for playing progress callback?
96
111
* use web workers, especially for the decoding of the ArrayBuffer into an AudioBuffer, to not block the main thread while decoding?
97
-
* cache (preload) AudioBuffers in localstorage, let the user set the amount of cached AudioBuffers, remove from cache by least used and by date when cache is full
98
112
* add shuffle mode
99
113
* add a loop song and loop queue mode
100
114
* handle all error cases that are still unhandled
101
115
* add support for more codecs (flac, wav, ogg vorbis, opus, aac): also check the available codecs and defined sources, play the first one that has matches and available codec, let user define order of preferred codecs for playerback
102
-
* add [browser compatibility table badge](https://saucelabs.com/blog/new-open-sauce-ui-and-refreshed-build-status-badges) in readme
103
-
* add [travis](https://travis-ci.org)build check and badge
104
-
* add UI screenshot to readme
105
-
* add demo (github pages)
116
+
* add saucelabs browser testing and their badge [browser compatibility table badge](https://saucelabs.com/blog/new-open-sauce-ui-and-refreshed-build-status-badges) in readme
117
+
* add [travis](https://travis-ci.org)continous integration and badge
118
+
* add improve UI style and then add a screenshot to readme of example
119
+
* add live demo (via github pages)
106
120
* for position and volume, allow to use a percentage or a value
107
121
* add hooks to the sound object for all the native source node events [AudioBufferSourceNode](https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode)
108
122
@@ -130,6 +144,11 @@ Their [blog post](https://medium.com/palantir/tslint-in-2019-1a144c2317a9) annou
130
144
* replace [gulp](https://gulpjs.com/) with [rollup](https://github.com/rollup/rollup) as new module bundler
131
145
* use [pkg.module](https://github.com/rollup/rollup/wiki/pkg.module) to distribute a UMD as well as an "ES6 modules" version
132
146
* rewrite the simple example with vanilla js instead of jquery
147
+
* put the web audio API player on npm and add npm version badge / license badge / ... [shields.io](http://shields.io/)
148
+
* implement suspend and resume: ctx.suspend() and resume
149
+
* add an option that uses the visibility API to automatically mute and unmute a sound when the visibility changes
150
+
* rewrite how the audiocontext is created, for browser that enforce that a user interaction has taken place before a context can be running
151
+
* add option to persist the user volume choice using the localstorage
0 commit comments