Replace howler.js with simple <audio />, will hopefully resolve

some weird mobile browser behaviours
This commit is contained in:
Eugen Rochko 2017-03-13 17:12:30 +01:00
parent a5daa806f2
commit 952bce3023
4 changed files with 33 additions and 29 deletions

View file

@ -0,0 +1,22 @@
const play = audio => {
if (!audio.paused) {
audio.pause();
audio.fastSeek(0);
}
audio.play();
};
export default function soundsMiddleware() {
const soundCache = {
boop: new Audio(['/sounds/boop.mp3'])
};
return ({ dispatch }) => next => (action) => {
if (action.meta && action.meta.sound && soundCache[action.meta.sound]) {
play(soundCache[action.meta.sound]);
}
return next(action);
};
};

View file

@ -3,21 +3,14 @@ import thunk from 'redux-thunk';
import appReducer from '../reducers';
import loadingBarMiddleware from '../middleware/loading_bar';
import errorsMiddleware from '../middleware/errors';
import soundsMiddleware from 'redux-sounds';
import Howler from 'howler';
import soundsMiddleware from '../middleware/sounds';
import Immutable from 'immutable';
Howler.mobileAutoEnable = false;
const soundsData = {
boop: '/sounds/boop.mp3'
};
export default function configureStore() {
return createStore(appReducer, compose(applyMiddleware(
thunk,
loadingBarMiddleware({ promiseTypeSuffixes: ['REQUEST', 'SUCCESS', 'FAIL'] }),
errorsMiddleware(),
soundsMiddleware(soundsData)
soundsMiddleware()
), window.devToolsExtension ? window.devToolsExtension() : f => f));
};