--- export interface Track { src: string; metadata: Record; duration: number; } import { Icon } from "astro-icon/components"; interface Props { height?: string; } const { height = "h-28" } = Astro.props as Props; import { getAudioDurationInSeconds } from "get-audio-duration"; import { join } from "path"; import { getCollection } from "astro:content"; const autoQueuedTracks = ( await getCollection("tracks", ({ data }) => data.autoQueue) ).sort( (a, b) => (a.data.autoQueue?.order || -1) - (b.data.autoQueue?.order || 1) ); const initialQueue = await Promise.all( autoQueuedTracks.map(async ({ data }) => { const fullFilePath = join(process.cwd(), "public", data.src); const duration = await getAudioDurationInSeconds(fullFilePath); return { src: data.src, metadata: data.metadata, duration: duration }; }) ); ---
0:00 0:00