impl auto play
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
"svelte": "^2.16.0"
|
"svelte": "^2.16.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"rrweb": "^0.7.2"
|
"rrweb": "^0.7.7"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
target: document.body,
|
target: document.body,
|
||||||
data: {
|
data: {
|
||||||
events,
|
events,
|
||||||
|
autoPlay: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -175,11 +175,19 @@
|
|||||||
onupdate({ changed, current, previous }) {
|
onupdate({ changed, current, previous }) {
|
||||||
if (current.replayer && !previous) {
|
if (current.replayer && !previous) {
|
||||||
window.replayer = current.replayer;
|
window.replayer = current.replayer;
|
||||||
// auto play
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.set({ isPlaying: true });
|
this.set({ isPlaying: true });
|
||||||
}, 0);
|
}, 0);
|
||||||
current.replayer.play(0);
|
current.replayer.play(0);
|
||||||
|
if (!current.autoPlay) {
|
||||||
|
let firstFullSnapshotRebuilded = false;
|
||||||
|
current.replayer.on('fullsnapshot-rebuilded', () => {
|
||||||
|
if (!firstFullSnapshotRebuilded) {
|
||||||
|
firstFullSnapshotRebuilded = true;
|
||||||
|
current.replayer.pause();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
current.replayer.on('pause', () => {
|
current.replayer.on('pause', () => {
|
||||||
this.set({ isPlaying: false });
|
this.set({ isPlaying: false });
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div class="rr-player" ref:player style="{playerStyle}">
|
<div class="rr-player" ref:player style="{playerStyle}">
|
||||||
<div class="rr-player__frame" ref:frame { style }></div>
|
<div class="rr-player__frame" ref:frame { style }></div>
|
||||||
{#if replayer}
|
{#if replayer}
|
||||||
<Controller { replayer } {showController} on:fullscreen="fullscreen()" />
|
<Controller { replayer } {showController} {autoPlay} on:fullscreen="fullscreen()" />
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -28,6 +28,7 @@
|
|||||||
width: 1024,
|
width: 1024,
|
||||||
height: 576,
|
height: 576,
|
||||||
events: [],
|
events: [],
|
||||||
|
autoPlay: true,
|
||||||
replayer: null,
|
replayer: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@@ -66,6 +67,7 @@
|
|||||||
speed: 1,
|
speed: 1,
|
||||||
root: this.refs.frame,
|
root: this.refs.frame,
|
||||||
skipInactive: true,
|
skipInactive: true,
|
||||||
|
showWarning: true,
|
||||||
});
|
});
|
||||||
replayer.on('resize', (dimension) =>
|
replayer.on('resize', (dimension) =>
|
||||||
this.updateScale(replayer.wrapper, dimension)
|
this.updateScale(replayer.wrapper, dimension)
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ const SECOND = 1000;
|
|||||||
const MINUTE = 60 * SECOND;
|
const MINUTE = 60 * SECOND;
|
||||||
const HOUR = 60 * MINUTE;
|
const HOUR = 60 * MINUTE;
|
||||||
export function formatTime(ms) {
|
export function formatTime(ms) {
|
||||||
|
if (ms <= 0) {
|
||||||
|
return '00:00';
|
||||||
|
}
|
||||||
const hour = Math.floor(ms / HOUR);
|
const hour = Math.floor(ms / HOUR);
|
||||||
ms = ms % HOUR;
|
ms = ms % HOUR;
|
||||||
const minute = Math.floor(ms / MINUTE);
|
const minute = Math.floor(ms / MINUTE);
|
||||||
|
|||||||
Reference in New Issue
Block a user