【问题标题】:Audio not playing on render - React音频未在渲染时播放 - React
【发布时间】:2023-04-01 15:11:01
【问题描述】:

我让这个组件在页面被渲染时播放音频文件。

class Audio extends Component {

  randomTrack(){
        [...]
  }

  componentDidMount() {
    const audioEl = document.getElementsByClassName("audio-element")[0]
    audioEl.play()
  }

  render() {
      var trackname=this.randomTrack();
    return (
      <div>
        <audio className="audio-element">
          <source src={trackname}></source>
        </audio>
      </div>
    )
  }
}
export default Audio;

每次浏览器窗口在保存代码更改后重新加载时,都会播放音频。

但是,如果我手动刷新窗口,或者如果我将代码部署到站点然后打开该站点,它将无法播放。 我知道这与此错误有关,然后我进入控制台:

Audio.js:12 Uncaught (in promise) DOMException: play() failed 因为 用户没有先与文档进行交互。

但是,为什么它在重新加载时播放? 是否有可能让它在页面加载时自动播放?

提前致谢!

【问题讨论】:

标签: javascript reactjs audio


【解决方案1】:

你可以这样试试

class Audio extends Component {

  randomTrack(){
        [...]
  }

  render() {
    let trackname=this.randomTrack();
    return (
      <div>
        <audio autoplay className="audio-element">
          <source src={trackname}></source>
        </audio>
      </div>
    )
  }
}
export default Audio;

使用标准解决方案播放音频的更好方法。

【讨论】:

  • 感谢您的回答,但问题仍然存在
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 2023-03-14
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 2019-10-29
相关资源
最近更新 更多