2017-05-01 11 views
1

完全にロードされたときにのみオーディオを再生したい。だから誰かが遅いネットワーク接続を持っている場合、それは吃音しません。私のコンポーネントは、次のようになります。完全にロードされたときに反応する - オーディオを再生する

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> 
     ); 
    } 
}; 

私はGPRS(/秒50キロバイト)にクロームデベロッパーツールの[ネットワーク]タブでスロットリング設定されている場合、それはひどいされており、一部で音声部分の再生を開始します:/。

完全に読み込まれている場合にのみオーディオを再生する方法はありますか?

答えて

関連する問題