spectatr-player-sdk
Version:
A custom video player built with Stencil with Shaka Player integration
46 lines (45 loc) • 2.04 kB
JavaScript
export function formatTime(seconds) {
const hours = Math.floor(seconds / 3600);
const mins = Math.floor((seconds % 3600) / 60);
const secs = Math.floor(seconds % 60);
if (hours > 0) {
return `${hours}:${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
}
else {
return `${mins}:${secs.toString().padStart(2, '0')}`;
}
}
export function formatTimeLive(currentTime, duration) {
const time = Math.floor(currentTime - duration);
if (Math.abs(time) <= 2)
return 'Live';
return `${formatTime(Math.abs(currentTime))} / Live`;
}
export function getSliderBackground(currentTime, duration) {
const percentage = (currentTime / duration) * 100 || 0;
const primary = getComputedStyle(document.documentElement).getPropertyValue('--vp-accent').trim();
const bg = getComputedStyle(document.documentElement).getPropertyValue('--vp-controls-bg').trim();
return `linear-gradient(to right, ${primary} 0%, ${primary} ${percentage}%, ${bg} ${percentage}%, ${bg} 100%)`;
}
export function getVolumeSliderBackground(isMuted, volume) {
const percentage = isMuted ? 0 : volume * 100 || 0;
const primary = getComputedStyle(document.documentElement).getPropertyValue('--vp-accent').trim();
const bg = getComputedStyle(document.documentElement).getPropertyValue('--vp-controls-bg').trim();
return `linear-gradient(to right, ${primary} 0%, ${primary} ${percentage}%, ${bg} ${percentage}%, ${bg} 100%)`;
}
export function resetControlsTimeout(component) {
if (component.controlsTimeout) {
clearTimeout(component.controlsTimeout);
}
component.controlsTimeout = setTimeout(() => {
if (component.isPlaying) {
component.showControls = false;
component.showSettings = false;
}
}, 3000);
}
export function formatLocalTime(utcTimeString) {
const date = new Date(utcTimeString);
return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
}
//# sourceMappingURL=ui-utils.js.map