A Howler.js mixin for Vue 2 that makes it easy to create custom audio player components
$ npm install vue-howler
First create a component that uses the mixin
audio-player.vue
<script>
import VueHowler from 'vue-howler'
export default {
mixins: [VueHowler]
}
</script>
<template>
<div>
<span>Total duration: {{ duration }} seconds</span>
<span>Progress: {{ (progress * 100) }}%</span>
<button @click="togglePlayback">{{ playing ? 'Pause' : 'Play' }}</button>
<button @click="stop">Stop</button>
</div>
</template>
Then you can use that component in your templates
home.vue
<script>
import AudioPlayer from './audio-player.vue'
export default {
components: {
AudioPlayer
},
data () {
return {
audioSources: [
"assets/audio/music.webm",
"assets/audio/fallback.mp3",
"assets/audio/fallback2.wav"
]
}
}
}
</script>
<template>
<div>
<audio-player :sources="audioSources" :loop="true"></audio-player>
</div>
</template>
Type: String[]
- Required
An array of audio file urls
Type: Boolean
- Default: false
Whether to force HTML5 Audio
Type: Boolean
- Default: false
Whether to start the playback again automatically after it is done playing
Type: Boolean
- Default: true
Whether to start downloading the audio file when the component is mounted
Type: Boolean
- Default: false
Whether to start the playback when the component is mounted
Type: String[]
- Default: []
Howler.js automatically detects your file format from the extension, but you may also specify a format in situations where extraction won't work (such as with a SoundCloud stream)
Type: Boolean
- Default: false
Whether to enable the withCredentials
flag on XHR requests
used to fetch audio files when using Web Audio API (see reference)
Type: Boolean
Whether audio is currently playing
Type: Boolean
Whether the audio playback is muted
Type: Number
The volume of the playback on a scale of 0
to 1
Type: Number
The rate (speed) of the playback on a scale of 0.5
to 4
Type: Number
The position of the playback in seconds
Type: Number
The duration of the audio in seconds
Type: Number
The progress of the playback on a scale of 0
to 1
Start the playback
Pause the playback
Toggle playing or pausing the playback
Stop the playback (also resets the seek
to 0
)
Mute the playback
Unmute the playback
Toggle muting and unmuting the playback
Set the volume of the playback (value is clamped between 0
and 1
)
Set the rate (speed) of the playback (value is clamped between 0.5
and 4
)
Set the position of the playback (value is clamped between 0
and duration
)
Set the progress of the playback (value is clamped between 0
and 1
)
MIT © Mick Dekkers