gpt4 book ai didi

javascript - 有没有办法在 react 中播放

转载 作者:行者123 更新时间:2023-12-03 13:40:39 28 4
gpt4 key购买 nike

我正在创建一个简单的 react 应用程序,需要使用给定的网址播放音乐。我尝试使用硬编码的音乐 url 进行测试并使用 <audio>标签来播放音乐,就像我们在 HTML 中所做的那样。

class Music extends React.Component {
render() {

return (
<span>

<audio src="URL">
</span>

)
}
}

但是这不会编译。在 React 应用程序中播放音乐的最简单方法是什么?

最佳答案

一种解决方案是使用 HTML5 音频。创建新音频对象并使用自定义播放/暂停按钮控制它。

基本示例:

class Music extends React.Component {
constructor(props) {
super(props);
this.state = {
play: false,
pause: true,
}
this.url = "http://streaming.tdiradio.com:8000/house.mp3";
this.audio = new Audio(this.url);
}

play = () => {
this.setState({ play: true, pause: false })
this.audio.play();
}

pause = () => {
this.setState({ play: false, pause: true })
this.audio.pause();
}

render() {

return (
<div>
<button onClick={this.play}>Play</button>
<button onClick={this.pause}>Pause</button>
</div>
);
}
}

ReactDOM.render(
<Music />,
document.getElementById('container')
);
<div id="container"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

您还可以使用addEventListener来控制和处理Play/Pause

播放:

this.audio.addEventListener('play', () => {
this.setState({
play: true,
pause: false,
})
});

暂停:

this.audio.addEventListener('pause', () => {
this.setState({
play: false,
pause: true,
})
});

文档和示例:

Audio/Video Event Listener

MDN HTML5 Audio

重要说明:

The HTML5 Audio element does not have a stop() function, so the audio after pause() is still loading (buffering in background).

这是一个解决方案: HTML5 Video: Force abort of buffering

JSFiddle: https://jsfiddle.net/y2j0vzbe/

希望这能有所帮助。

关于javascript - 有没有办法在 react 中播放 <audio> 音乐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47616619/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com