• This repository has been archived on 11/Jan/2020
  • Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[UNMAINTAINED] A Howler.js mixin for Vue 2 that makes it easy to create custom audio player components

vue-howler Version

A Howler.js mixin for Vue 2 that makes it easy to create custom audio player components

Installation

$ npm install vue-howler

Usage

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>

API

Props

sources

Type: String[] - Required

An array of audio file urls

html5

Type: Boolean - Default: false

Whether to force HTML5 Audio

loop

Type: Boolean - Default: false

Whether to start the playback again automatically after it is done playing

preload

Type: Boolean - Default: true

Whether to start downloading the audio file when the component is mounted

autoplay

Type: Boolean - Default: false

Whether to start the playback when the component is mounted

formats

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)

xhrWithCredentials

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)

Data

playing

Type: Boolean

Whether audio is currently playing

muted

Type: Boolean

Whether the audio playback is muted

volume

Type: Number

The volume of the playback on a scale of 0 to 1

rate

Type: Number

The rate (speed) of the playback on a scale of 0.5 to 4

seek

Type: Number

The position of the playback in seconds

duration

Type: Number

The duration of the audio in seconds

progress

Type: Number

The progress of the playback on a scale of 0 to 1

Methods

play()

Start the playback

pause()

Pause the playback

togglePlayback()

Toggle playing or pausing the playback

stop()

Stop the playback (also resets the seek to 0)

mute()

Mute the playback

unmute()

Unmute the playback

toggleMute()

Toggle muting and unmuting the playback

setVolume(volume)

Set the volume of the playback (value is clamped between 0 and 1)

setRate(rate)

Set the rate (speed) of the playback (value is clamped between 0.5 and 4)

setSeek(seek)

Set the position of the playback (value is clamped between 0 and duration)

setProgress(progress)

Set the progress of the playback (value is clamped between 0 and 1)

License

MIT Β© Mick Dekkers

More Repositories

1

eve-map-json

Generate graph data for EVE Online's solar systems (nodes) and their connections (edges)
JavaScript
15
star
2

vac-dsl

A Domain-Specific Language for virtual audio routing (work in progress)
TypeScript
7
star
3

vakt

A modern type guard utility for Node.js
JavaScript
5
star
4

parse-xsd-duration

Parse XSD durations to seconds
JavaScript
5
star
5

episodecalendar-exporter

Automatically back up your episodecalendar.com user data
JavaScript
4
star
6

skyrim-alchemy-rs

Very WIP project that's intended to become a tool to help with Skyrim's alchemy minigame by recommending the best potions to craft based on the ingredients in the player's possession
Rust
3
star
7

audiobook-chapterizer

[WIP πŸ› ] Use ✨AI✨ to add chapters to your audiobooks! πŸ§™β€β™‚οΈπŸ€ž
Rust
2
star
8

tesv-ksy

[WIP] Kaitai Struct format definitions for The Elder Scrolls V: Skyrim
2
star
9

x4-x55-hotas-throttle-mini-stick-fixer

C#
2
star
10

node-red-contrib-google-ddns

[alpha] A Node-RED node to update the IP address of a Google Dynamic DNS record
TypeScript
1
star
11

rust-wsl2-io-err-repro

This is a reproduction repo for an I/O error that occurs when piping output of a x86_64-pc-windows-gnu Rust program to a file in WSL 2
Rust
1
star
12

electronuxt-starter

Create an Electron app that serves a Nuxt.js app
JavaScript
1
star
13

yarn-v2-yarn-lock-in-node_modules-repro

1
star
14

sevendays-crafting-calculator

7 Days to Die crafting calculator (WIP)
Rust
1
star
15

windows-audio-config

My personal audio configuration for Windows (work in progress)
PowerShell
1
star
16

dotifier

Encode an integer into a Gmail address using dots
JavaScript
1
star