2017-04-05 36 views
0

我有一个反应组件,其中包含播放直播的Audio对象。当组件最初加载它开始播放时,但是,如果我卸载组件然后重新安装它,播放按钮不起作用,并且流不会重新启动。使用React重新安装音频对象时不重新启动流

下面是组件和生命周期方法的代码:

import React from 'react' 
import compose from 'recompose/compose' 
import lifecycle from 'recompose/lifecycle' 

const enhance = compose(
    lifecycle({ 
    componentDidMount() { 
    this.audio = new Audio() 
    this.audio.src = 'http://some-stream-url.com' 
    this.audio.play() 
    this.audio.muted = true 
    }, 
    componentDidUpdate() { 
    this.audio.muted = !this.props.playing 
    }, 
    componentWillUnmount() { 
    this.audio = '' 
    this.audio = null 
    } 
}) 
) 

const Player = (props) => null 

export default enhance(Player) 

回答

1

停止音频和重启当前时间。

componentWillUnmount() { 
    this.audio.pause() 
    this.audio.currentTime = 0 
} 
+0

不幸的是,这似乎缓存离线前的最后几秒,但它不会再次实例化流 –

相关问题