使用 Redux 播放音频文件
Playing audio files with Redux
我正在用React和Redux开发一个应用程序。我有一个计时器thunk,它每秒调度一个动作,并且状态更新以表示实际时间。现在这对 UI 来说很棒,但我需要在特定时间播放声音,我不确定这个逻辑应该去哪里。
我可以修改计时器 thunk 来播放声音,但这对我来说似乎不是一个好的解决方案,因为我认为计时器应该只对调度"经过的时间"动作产生共鸣。
我的另一个想法是订阅一个听众到商店,它将检查状态并在必要时播放声音。
像这样使用sound
存储怎么样:
const initialState = {
currentSound: undefined
}
export default function sound(state = initialState, action) {
switch(action.type) {
case UPDATE_TIME:
const time = action.time
const sounds = {
6: '/sound1.mp3',
22: '/sound2.mp3',
99: '/sound3.mp3'
}
return Object.assign({}, state, {currentSound: sounds[time]})
}
}
然后,在您的组件中,您可以使用 react-redux
中的connect
来获取您的状态(state.sound.currentSound
)并播放声音(如果有)。由于每次调度操作时都会更新商店,因此如果当时没有声音,则将currentSound
undefined
。
相关文章:
- 如何播放部分音频文件
- javascript:发送带有音频文件的POST,然后重定向到新页面
- Javascript::通过HTML5音频播放器播放列表播放多个音频文件
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 正在预加载jPlayer要使用的音频文件
- HTML 5<音频>-在特定时间点播放文件
- 将Base64音频文件Mp3解码为可播放的Mp3
- 更改音频速度,然后另存为新文件
- Blueimp jQuery文件上传音频/视频限制
- 在播放完成之前再次单击播放音频文件
- 在 Windows 现代(地铁)UI 应用中存储图像文件和音频文件的方法是什么?
- 在 JavaScript 中对音频文件进行计时不准确
- 如何在html5/JS中只预加载音频文件的一部分
- 单个页面上的多个音频文件javascript
- 如何将timbre.js缓冲区导出为.wav或任何其他音频文件格式
- JavaScript/HTML5音频:在Android Chrome中播放用户通过文件选择器加载的mp3文件
- 从PHP脚本获取音频文件时,更改JavaScript音频对象的当前时间
- 如何使用Node.js将音频样本数组写入wav文件
- 如何用一个html5音频播放器播放多个音频文件
- 可以't在手把文件中设置音频src