本文介绍了无法在Reactjs中暂停音频的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我关注了其他提出类似问题的帖子,但他们没有提供解决方案。
我无法在我的反应挂钩中暂停音频。
这是我的反应挂钩:
import React, { useState } from "react";
export default (App = props => {
const [audioStatus, changeAudioStatus] = useState(false);
const audio = new Audio(
"https://mcdn.podbean.com/mf/web/xm5ngf/The_Challenge_Chronicles_-_Episode_48_7ys6e.mp3"
);
audio.load();
const startAudio = () => {
audio.play();
changeAudioStatus(true);
};
const pauseAudio = () => {
console.log("here");
audio.pause();
changeAudioStatus(false);
};
return (
<>
{audioStatus ? (
<button onClick={pauseAudio}>pause</button>
) : (
<button onClick={startAudio}>start</button>
)}
</>
);
我还创建了一个沙箱:https://codesandbox.io/s/great-gagarin-v0vi1
推荐答案
您可以使用audio标记,并传递ref进行反应,以便它知道正在使用哪个元素。
export default (App = props => {
const [audioStatus, changeAudioStatus] = useState(false);
const myRef = useRef();
const startAudio = () => {
myRef.current.play();
changeAudioStatus(true);
};
const pauseAudio = () => {
console.log("here");
myRef.current.pause();
changeAudioStatus(false);
};
return (
<>
<audio
ref={myRef}
src="https://mcdn.podbean.com/mf/web/xm5ngf/The_Challenge_Chronicles_-_Episode_48_7ys6e.mp3"
/>
{audioStatus ? (
<button onClick={pauseAudio}>pause</button>
) : (
<button onClick={startAudio}>start</button>
)}
</>
);
});
这篇关于无法在Reactjs中暂停音频的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!