{#if showInfoTop}
{name}
{singer}
{/if}
{#if !showInfoTop}
{name}
{singer}
{/if}
{formatDuration(progress)}
progressBarOnClick(e)} bind:this={progressBar} on:mousedown={() => { userAdjustingProgress.set(true); }} on:mousemove={(e) => { if ($userAdjustingProgress) { adjustDisplayProgress(e.offsetX / progressBar.getBoundingClientRect().width); } }} on:touchstart={(e) => { if (e.cancelable) { e.preventDefault(); } userAdjustingProgress.set(true); }} on:touchmove={(e) => { e.preventDefault(); userAdjustingProgress.set(true); if ($userAdjustingProgress) { lastTouchProgress = turncate( e.touches[0].clientX - progressBar.getBoundingClientRect().x, 0, progressBar.getBoundingClientRect().width ) / progressBar.getBoundingClientRect().width; adjustDisplayProgress(lastTouchProgress); } }} on:touchend={(e) => { e.preventDefault(); userAdjustingProgress.set(false); adjustProgress(lastTouchProgress); }} on:mouseup={() => { userAdjustingProgress.set(false); }} role="slider" aria-valuemin="0" aria-valuemax={duration} aria-valuenow={progress} tabindex="0" on:keydown on:keyup >
{formatDuration(duration)}
clickPlay()} >
volumeBarOnChange(e)} bind:this={volumeBar} on:mousedown={() => { userAdjustingVolume = true; }} on:mousemove={(e) => { if (userAdjustingVolume) { volumeBarOnChange(e); } }} on:touchstart={(e) => { if (e.cancelable) { e.preventDefault(); } userAdjustingVolume = true; }} on:touchmove={(e) => { e.preventDefault(); userAdjustingVolume = true; if (userAdjustingVolume) { volumeBarChangeTouch(e); } }} on:touchend={(e) => { e.preventDefault(); userAdjustingVolume = false; }} on:mouseup={() => { userAdjustingVolume = false; }} role="slider" aria-valuemin="0" aria-valuemax="1" aria-valuenow={volume} tabindex="0" on:keydown on:keyup >