Switch to FlowPlayer to fix streaming issues and simplify code
This commit is contained in:
parent
3ae53eda6b
commit
9071b2b1a9
6 changed files with 29 additions and 28 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,5 +1,7 @@
|
||||||
dist/css/*
|
dist/css/*
|
||||||
dist/js/*
|
dist/js/*
|
||||||
|
!dist/js/flowplayer/
|
||||||
|
!dist/js/flowplayer/
|
||||||
node_modules
|
node_modules
|
||||||
.sass-cache
|
.sass-cache
|
||||||
.idea
|
.idea
|
||||||
|
|
1
dist/index.html
vendored
1
dist/index.html
vendored
|
@ -21,6 +21,7 @@
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.7.4/polyfill.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.7.4/polyfill.js"></script>
|
||||||
|
<script src="./js/flowplayer/flowplayer-3.2.13.min.js"></script>
|
||||||
<script src="./js/lbry.js"></script>
|
<script src="./js/lbry.js"></script>
|
||||||
<script src="./js/component/common.js"></script>
|
<script src="./js/component/common.js"></script>
|
||||||
<script src="./js/component/splash.js"></script>
|
<script src="./js/component/splash.js"></script>
|
||||||
|
|
22
dist/js/flowplayer/flowplayer-3.2.13.min.js
vendored
Normal file
22
dist/js/flowplayer/flowplayer-3.2.13.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
dist/js/flowplayer/flowplayer-3.2.18.swf
vendored
Normal file
BIN
dist/js/flowplayer/flowplayer-3.2.18.swf
vendored
Normal file
Binary file not shown.
BIN
dist/js/flowplayer/flowplayer.controls-3.2.16.swf
vendored
Normal file
BIN
dist/js/flowplayer/flowplayer.controls-3.2.16.swf
vendored
Normal file
Binary file not shown.
|
@ -19,19 +19,6 @@ var WatchPage = React.createClass({
|
||||||
lbry.getStream(this.props.name);
|
lbry.getStream(this.props.name);
|
||||||
this.updateLoadStatus();
|
this.updateLoadStatus();
|
||||||
},
|
},
|
||||||
reloadIfNeeded: function() {
|
|
||||||
// Fallback option for loading problems: every 15 seconds, if the video hasn't reported being
|
|
||||||
// playable yet, ask it to reload.
|
|
||||||
if (!this.state.readyToPlay) {
|
|
||||||
this._video.load()
|
|
||||||
setTimeout(() => { this.reloadIfNeeded() }, 15000);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onCanPlay: function() {
|
|
||||||
this.setState({
|
|
||||||
readyToPlay: true
|
|
||||||
});
|
|
||||||
},
|
|
||||||
updateLoadStatus: function() {
|
updateLoadStatus: function() {
|
||||||
lbry.getFileStatus(this.props.name, (status) => {
|
lbry.getFileStatus(this.props.name, (status) => {
|
||||||
if (!status || status.code != 'running' || status.written_bytes == 0) {
|
if (!status || status.code != 'running' || status.written_bytes == 0) {
|
||||||
|
@ -44,31 +31,20 @@ var WatchPage = React.createClass({
|
||||||
setTimeout(() => { this.updateLoadStatus() }, 250);
|
setTimeout(() => { this.updateLoadStatus() }, 250);
|
||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
loadStatusMessage: "Buffering",
|
readyToPlay: true
|
||||||
downloadStarted: true,
|
})
|
||||||
});
|
flowplayer('player', 'js/flowplayer/flowplayer-3.2.18.swf');
|
||||||
setTimeout(() => { this.reloadIfNeeded() }, 15000);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
render: function() {
|
render: function() {
|
||||||
if (!this.state.downloadStarted) {
|
|
||||||
var video = null;
|
|
||||||
} else {
|
|
||||||
// If the download has started, render the <video> behind the scenes so it can start loading.
|
|
||||||
// When the video is actually ready to play, the loading text is hidden and the video shown.
|
|
||||||
var video = <video src={"/view?name=" + this.props.name} style={videoStyle}
|
|
||||||
className={this.state.readyToPlay ? '' : 'hidden'} controls
|
|
||||||
onCanPlay={this.onCanPlay} ref={(video) => {this._video = video}}/>;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main>
|
<main>
|
||||||
<div className={this.state.readyToPlay ? 'hidden' : ''}>
|
<div className={this.state.readyToPlay ? 'hidden' : ''}>
|
||||||
<h3>Loading lbry://{this.props.name}</h3>
|
<h3>Loading lbry://{this.props.name}</h3>
|
||||||
{this.state.loadStatusMessage}...
|
{this.state.loadStatusMessage}...
|
||||||
</div>
|
</div>
|
||||||
{video}
|
<a id="player" href={"/view?name=" + this.props.name} style={videoStyle} />
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue