javascript - 为什么我的音频 html 项目在我改变音量后没有播放?
问题描述
我正在尝试遵循 React 教程,并制作了一个具有音频 html 标签的组件,该标签的音量由其他 React 组件中的输入确定。但是,在我在代码中实现音量后,我的音频甚至无法再现。也许这是一个语法问题,但我找不到它。
function App () {
const {volume,setVolume} = React.useState(1);
return (
<div>
{audioClips.map(clip => {
return <Pad clip={clip} volume={volume}/>
})}
<br />
<h4>Volume</h4>
<input
type="range"
min="0"
max="1"
onChange = {(e)=>{return setVolume(e.target.value)}}
value={volume}
step="0.01"
className="w-50"
/>
</div>
)
}
function Pad ({clip, volume}) {
const [active, setActive] = React.useState(false);
React.useEffect(()=>{
document.addEventListener('keydown', handleKeyPress);
return () => {
document.removeEventListener('keydown', handleKeyPress);
}
},{})
const playSound = () =>{
const audioTag = document.getElementById(clip.keyTrigger);
setActive(true);
setTimeout(()=>{return setActive(false)},200);
audioTag.volume = volume;
audioTag.currentTime=0;
audioTag.play();
}
return (
<div onClick={playSound} className={`btn btn-secondary m-3 p-4 ${active && "btn-warning"}`}>
<audio id = {clip.keyTrigger} src={clip.url}/>
{clip.keyTrigger}
</div>
)
}
解决方案
好像你的第一行有一个错误:
const {volume,setVolume} = React.useState(1);
应该:
const [volume,setVolume]= React.useState(1);
推荐阅读
- sql - 获取每个客户的最大日期
- reactjs - 如何使用 Electron 和 React 在页面之间导航?
- python - NoSuchElementException - Python + Selenium 列表循环
- python - Brightway2:导入具有水资源位置的 Simapro 数据集
- postgresql - 在 zsh mac 中找不到 psql 命令中的 Postgresql 错误
- python - 如何在django中从模型类调用属性方法到html
- php - 如果数字相等、大于两位数或小于两位数,如何编写条件
- javascript - Vue路由器更改url但不更改内容
- delphi - 如何使用 Delphi 将特定的 32 x 32 图标从 EXE 提取到 TIcon
- python - 如何将文本文档中的字符串转换为列表,并将列表分隔为python中的部分