reactjs react JS中的自定义音频播放器-音量控制

cidc1ykv  于 2022-12-03  发布在  React
关注(0)|答案(2)|浏览(247)

我正在React JS中构建一个自定义音频播放器,我目前被音频播放器中的音量控件卡住了
这是我的代码
进度条工作正常,音量控制背后的逻辑应该是什么

const [currentTime, setCurrentTime] = useState(0);
const progressBar = useRef();
const audioPlayer = useRef();

AduioPlayer.js

....
<audio
    ref={audioPlayer}
    src="something.mp3"
    preload="auto"
    volume
  ></audio>
// Volume Control Range slider
<input
    type="range"
    defaultValue="0"
    className="mx-2 progressBarvolume bar volume"
/>

// Progress Bar 
<input
    type="range"
    className="progressBar bar"
    defaultValue="0"
    ref={progressBar}
    onChange={changeRange}
/>
....

changeRange函数:

const changeRange = () => {
    audioPlayer.current.currentTime = progressBar.current.value;
    changePlayerCurrentTime();
};

更改播放器当前时间函数:

const changePlayerCurrentTime = () => {
    progressBar.current.style.setProperty(
        "--seek-before-width",
        `${(progressBar.current.value / duration) * 100}%`
    );
    setCurrentTime(progressBar.current.value);
};
vhipe2zx

vhipe2zx1#

音频HTML元素有一个音量属性,您可以访问它。您需要在音频滑块中有一个onChange事件。
在onChange方法中,类似于下面的内容将起作用:
audioPlayer.current.volume = e.target.value / 100;
其中e是传递到onChange方法的ChangeEvent。

s4n0splo

s4n0splo2#

这就是我的工作方式
第一个

相关问题