1.3.0 • Published 11 months ago

svelte-mp3 v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Svelte-mp3

This is a light blazingly fast yet simple minimalistic audio player for svelte.

Demo

Installation

npm install --save svelte-mp3

Quickstart

Inside any *.svelte file:

  <script>
    import {AudioPlayer} from 'svelte-mp3';
  </script>
  //...
  <AudioPlayer 
    urls=['url or src of an audio1','url or src of an audio2']
  />

Features

  1. Previous track/Next track, shuffle, loop buttons
  2. Shuffle, volume, loop values persistant on local storage.
  3. Flexible.
  4. Customizable.

Props

bind:controller

A way to interact with controller instance.

  • type: HTMLElement
  • default: {}
<script>
...
let controller: HTMLElement = {};
$:console.dir(controller) // Output: DOM element object
</script>

<AudioPlayer {url} bind:controller={controller}/>

bind:audio

A way to interact with audio instance.

  • type: HTMLAudioElement
  • default: {}
<script>
...
let audio: HTMLMediaElement = {};
$:console.dir(audio) // Output: audio element object
</script>

<AudioPlayer {url} bind:audio={audio}/>

class

Any global class name for styling your player

  • type: string
  • default: empty string

disableVolSlider

Removes volume control slider if true.

  • type: boolean
  • default: false

color

coloring the outlines and buttons

  • type: string
  • default: 'black'

enableMediaSession

If true, lets users control playback of media through user-agent defined interface elements (media notification). Interaction with these elements triggers action handlers in the web page, playing the media. See: MDN

  • type: boolean
  • default: true

loop

playback same audio every time or all audio in a loop.

  • type: 'repeat-all', 'repeat', 'no-repeat'
  • default: 'no-repeat'

mediaMetadata

An array of MediaMetadata which lets a web site provide rich metadata to the platform UI for media that is playing. This metadata includes the title, artist (creator) name, album (collection), and artwork. The platform can show this metadata in media centers, notifications, device lockscreens, etc. See: MDN

  • type: MediaMetadataInit []
  • default: []

showNext

hides next button if false.

  • type: boolean
  • default: true

showPrev

hides previous button if false.

  • type: boolean
  • default: true

showTime

display current time and duration of an audio.

  • type: boolean
  • default: true

showTrackNum

display currently playing track number.

  • type: boolean
  • default: true

showShuffle

display shuffle button if true.

  • type: boolean
  • default: true

showVolume

display speaker icon and volume control slider if true.

  • type: boolean
  • default: true

shuffle

playback random track number if true.

  • type: boolean
  • default: true

style

  • type: string
  • default: empty string

urls

array of audio source/url

  • type: string []
  • default: []

volume

value between 0 to 1.

  • type: number
  • default: 1

progressBackground

background color of the audio progress bar.

  • type: string
  • default: gainsboro

progressForeground

foreground color of the audio progress bar.

  • type: string
  • default: red

API

nametypedefaultdesc
isPlayingwritable store Booleanfalsea global writable svelte store for checking and setting audio playback.
trackIndexwritable store number0currently playing track number.
statewritable store 'repeat-all', 'repeat', 'no-repeat''no-repeat'looping values.
PlayIconsvelte component
PauseIconsvelte component
PreviousIconsvelte component
NextIconsvelte component
ShuffleIconsvelte component
RepeatIconsvelte component
RepeatOnceIconsvelte component
NoRepeatIconsvelte component

With global stores you can import them from any svelte component to configure audio player.

Events

svelte mp3 supports almost all events of audio tag. events are forwarded by event dispatcher. see: MDN.

Note: To access target inside of event object you need to write event.detail.target instead of event.target.

name
canplay
canplaythrough
durationchange
ended
loadeddata
playing
ratechange
stalled
suspend
timeupdate
volumechange
waiting
progress
error
1.3.0

11 months ago

1.2.0

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.1

2 years ago