video: catch play throws
Signed-off-by: Varun Patil <radialapps@gmail.com>pull/900/head
parent
37783d831d
commit
1e5a5d3b4f
|
@ -269,11 +269,15 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
|
|
||||||
/** Start preview video */
|
/** Start preview video */
|
||||||
playVideo() {
|
async playVideo() {
|
||||||
const video = this.refs.video;
|
const video = this.refs.video;
|
||||||
if (video && !(this.data.flag & this.c.FLAG_SELECTED)) {
|
if (!video || this.data.flag & this.c.FLAG_SELECTED) return;
|
||||||
|
|
||||||
|
try {
|
||||||
video.currentTime = 0;
|
video.currentTime = 0;
|
||||||
video.play();
|
await video.play();
|
||||||
|
} catch (e) {
|
||||||
|
// ignore, pause was probably called too soon
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -27,11 +27,15 @@ class LivePhotoContentSetup {
|
||||||
lightbox.on('contentDestroy', this.onContentDestroy.bind(this));
|
lightbox.on('contentDestroy', this.onContentDestroy.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
play(content: PsContent) {
|
async play(content: PsContent) {
|
||||||
const video = content.element?.querySelector('video');
|
const video = content.element?.querySelector('video');
|
||||||
if (video) {
|
if (!video) return;
|
||||||
|
|
||||||
|
try {
|
||||||
video.currentTime = 0;
|
video.currentTime = 0;
|
||||||
video.play();
|
await video.play();
|
||||||
|
} catch (e) {
|
||||||
|
// ignore, pause was probably called too soon
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,7 @@ class VideoContentSetup {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Play the video (hopefully)
|
// Play the video (hopefully)
|
||||||
const playWithDelay = () => setTimeout(() => content.videojs?.play(), 100);
|
const playWithDelay = () => setTimeout(() => this.playNoThrow(content.videojs), 100);
|
||||||
playWithDelay();
|
playWithDelay();
|
||||||
|
|
||||||
content.videojs.on('canplay', () => {
|
content.videojs.on('canplay', () => {
|
||||||
|
@ -469,7 +469,15 @@ class VideoContentSetup {
|
||||||
const time = vidjs.currentTime();
|
const time = vidjs.currentTime();
|
||||||
vidjs.src(src);
|
vidjs.src(src);
|
||||||
vidjs.currentTime(time);
|
vidjs.currentTime(time);
|
||||||
vidjs.play();
|
this.playNoThrow(vidjs);
|
||||||
|
}
|
||||||
|
|
||||||
|
async playNoThrow(vidjs: Player | null) {
|
||||||
|
try {
|
||||||
|
await vidjs?.play();
|
||||||
|
} catch (e) {
|
||||||
|
// Ignore - video destroyed?
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onContentDestroy({ content }: PsVideoEvent) {
|
onContentDestroy({ content }: PsVideoEvent) {
|
||||||
|
|
Loading…
Reference in New Issue