{#if loading}
Loading tracks... {loadingProgress}%
{:else if error}
{error}
{:else if currentTrack}
{currentTrack.title}
FLAC
{currentTrackIndex + 1}/{tracks.length}
{currentTrack.artist}
{#if currentTrack.album}
[Album] {currentTrack.album}
{/if} {#if currentTrack.year}
[Year] {currentTrack.year}
{/if} {#if currentTrack.metadata.format}
{Math.round(currentTrack.metadata.format.sampleRate / 1000)}kHz • {currentTrack.metadata.format.bitsPerSample}bit • {currentTrack.metadata.format.bitrate ? Math.round(currentTrack.metadata.format.bitrate / 1000) + 'kbps' : 'Lossless'}
{/if}
{#if currentTrack.metadata.common.picture && currentTrack.metadata.common.picture[0]} {@const base64Image = arrayBufferToBase64(currentTrack.metadata.common.picture[0].data)} {#if base64Image}
Album artwork
{:else}
{/if} {:else}
{/if}
{/if}
{formatTime(currentTime)} / {formatTime(duration)}
{#if duration > 0}
-{formatTime(duration - currentTime)}
{/if}
{Math.round(volume * 100)}%
e.key === 'Enter' && seek(e)} role="slider" tabindex="0" aria-label="Seek audio position" aria-valuenow={duration ? Math.round((currentTime / duration) * 100) : 0} aria-valuemin="0" aria-valuemax="100" >
{#if showPlaylist && tracks.length > 1}
Playlist ({tracks.length} tracks)
{#each tracks as track, index}
switchToTrack(index)} on:keydown={(e) => e.key === 'Enter' && switchToTrack(index)} role="button" tabindex="0" aria-label="Switch to track {track.title}" >
{index + 1}
{track.title}
{track.artist}
{formatTime(track.duration || 0)}
{/each}
{/if}