首页 > 解决方案 > 在 React 中的 audio.play() 之后 audio.pause() 不起作用

问题描述

我想这样做,如果我在播放音频后再次按下,它将停止。但是, audio.pause() 没有响应。另外,我尝试使用useCallback,但这也不起作用。

const [played, setPlayed] = useState(false)

const audio = new Audio(src)

const playMessage = () => {
  setPlayed(!played)
  if (played) {
    audio.pause()
    audio.currentTime = 0
  } else {
    audio.play()
  }
}

标签: reactjsaudio

解决方案


我认为您每次重新渲染时都会创建新的音频对象。你能试一下吗

const audio = useMemo(() => new Audio(src), [src]);

推荐阅读