Merge pull request #1705 from doublex/master

preview-thumbnails via src:callback()
This commit is contained in:
Sam Potts 2020-03-29 11:19:38 +11:00 committed by GitHub
commit 48758bd5f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -137,19 +137,34 @@ class PreviewThumbnails {
throw new Error('Missing previewThumbnails.src config attribute');
}
// If string, convert into single-element list
const urls = is.string(src) ? [src] : src;
// Loop through each src URL. Download and process the VTT file, storing the resulting data in this.thumbnails
const promises = urls.map(u => this.getThumbnail(u));
Promise.all(promises).then(() => {
// Resolve promise
const sortAndResolve = () => {
// Sort smallest to biggest (e.g., [120p, 480p, 1080p])
this.thumbnails.sort((x, y) => x.height - y.height);
this.player.debug.log('Preview thumbnails', this.thumbnails);
resolve();
});
};
// Via callback()
if (is.function(src)) {
// Ask
let that = this;
src(function(thumbnails) {
that.thumbnails = thumbnails;
// Resolve
sortAndResolve();
});
}
// VTT urls
else {
// If string, convert into single-element list
const urls = is.string(src) ? [src] : src;
// Loop through each src URL. Download and process the VTT file, storing the resulting data in this.thumbnails
const promises = urls.map(u => this.getThumbnail(u));
// Resolve
Promise.all(promises).then(sortAndResolve);
}
});
}