var WatchPage = React.createClass({ propTypes: { name: React.PropTypes.string, }, getInitialState: function() { return { downloadStarted: false, readyToPlay: false, loadStatusMessage: "Requesting stream", mimeType: null, }; }, componentDidMount: function() { lbry.getStream(this.props.name); this.updateLoadStatus(); }, updateLoadStatus: function() { lbry.getFileStatus(this.props.name, (status) => { if (!status || status.code != 'running' || status.written_bytes == 0) { // Download hasn't started yet, so update status message (if available) then try again if (status) { this.setState({ loadStatusMessage: status.message }); } setTimeout(() => { this.updateLoadStatus() }, 250); } else { this.setState({ readyToPlay: true, mimeType: status.mime_type, }) var player = new MediaElementPlayer(this.refs.player, { mode: 'shim', // Force Flash (for now) setDimensions: false, }); } }); }, render: function() { return ( !this.state.readyToPlay ? :
); } });