import * as types from 'app/types' import { store, history, dispatch } from 'app/store' import actions from 'app/actions' import { session } from 'app/session' const audioPlayer = document.createElement('audio') audioPlayer.src = '/static/data_store/peaks/animismA080720.mp3' audioPlayer.addEventListener('loadedmetadata', () => { console.log('audio duration:', audioPlayer.duration) dispatch({ type: types.align.set_display_setting, key: 'duration', value: audioPlayer.duration }) }) audioPlayer.addEventListener('play', () => { dispatch({ type: types.audio.play }) }) audioPlayer.addEventListener('pause', () => { dispatch({ type: types.audio.pause }) }) audioPlayer.addEventListener('timeupdate', () => { dispatch({ type: types.audio.update_time, play_ts: audioPlayer.currentTime }) }) export const play = () => dispatch => { audioPlayer.play() } export const pause = () => dispatch => { audioPlayer.pause() } export const seek = play_ts => dispatch => { audioPlayer.currentTime = play_ts } export const jump = delta_ts => dispatch => { audioPlayer.currentTime += delta_ts } export const toggle = () => dispatch => { if (store.getState().audio.playing) { pause()(dispatch) } else { play()(dispatch) } } export const setVolume = volume => dispatch => { audioPlayer.volume = volume dispatch({ type: types.audio.set_volume, volume }) }