javascript - React - 完全加载时播放音频

标签 javascript reactjs

我只想在音频完全加载时播放音频。因此,如果有人的网络连接速度很慢,它就不会卡顿。我的组件如下所示:

class MusicLoop extends Component {
    state = {
        isLoaded: false
    }

    componentWillReceiveProps(nextProps) {
        if (nextProps.song !== this.props.song) {
            this.setState({
                isLoaded: false
            });
        }
    }

    playSong = () => {
        this.setState({
            isLoaded: true,
        });
    }

    render() {
        const { song } = this.props;
        const { isLoaded } = this.state;

        return (
            <div>
                { isLoaded ? 'Playing' : 'Loading' }
                <audio
                    preload="auto"
                    src={require(`../static/songs/${song}.mp3`)}
                    loop="true"
                    autoPlay={false}
                    onLoadedData={() => this.playSong()}
                />
            </div>
        );
    }
};

如果我将 Chrome DevTools 中的“网络”选项卡中的“限制”设置为 GPRS (50 kb/s),它将开始逐部分播放音频,这很糟糕:/。

如何仅在完全加载时播放音频?

最佳答案

您可以使用sound manager - 这是 usage example

关于javascript - React - 完全加载时播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43721267/

相关文章:

javascript - 如何在 Angular Material 中嵌套网格列表?

javascript - 如何在 react 节点 js 项目中从客户端创建动态元标记?

reactjs - React Dumb 组件 Typescript 错误 : Element is not a constructor function for JSX elements, 属性 'render' 丢失

css - styled-components 的生产版本中我的 css 类在哪里

javascript - 获取嵌套点击功能的结果

javascript - Cytoscape.js:样式不适用

javascript - Angular 2 引导函数给出错误 "Argument type AppComponent is not assignable to parameter type Type"

javascript - 从 2005 年的 Javascript 意大利面条代码转移到 2013 年的模块化 Javascript?

javascript - 是否可以初始化一次 redux 存储并在多个页面中使用?

javascript - 带有反应路线的三元运算符中的多个表达式