Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nypublicradio/vue-hifi

The easy way to play audio in your Vue app.
https://github.com/nypublicradio/vue-hifi

Last synced: 18 days ago
JSON representation

The easy way to play audio in your Vue app.

Awesome Lists containing this project

README

        

This repo is an initial attempt at converting `ember-hifi` to `vue-hifi`.

### Run Development Server

`npm run dev`

### Install

`npm install --save vue-hifi``

### Overview

`vue-hifi` focuses on simple stream playback of HLS and other formats.

It uses two playback libraries: HLS.js and Howler.js. When using Howler.js, it forces Howler’s Native Audio option, as opposed to Web Audio extensions, which is Howler’s default. This way, we don’t have to implement Native Audio ourselves, and can use Howler’s Web Audio in the future for on-demand.

`vue-hifi` is implemented as a mixin that can be added to a Vue component. It takes in a list of URLs through the `play` method and plays the first URL with a format supported by the current browser, like so:

```


play
pause
stop
togglePause
isLoading: {{ isLoading }}

isPlaying: {{ isPlaying }}

import vueHifi from '../src/mixins/vue-hifi'
export default {
mixins: [vueHifi],
methods: {
playTest () {
this.play([
'https://hls-live.wnyc.org/wnycfm32/playlist.m3u8',
'https://fm939.wnyc.org/wnycfm-app'
])
}
}
}

```

Right now, it tries Native Audio through Howler.js first, and then HLS.js. In this scenario, the following playback libraries will be used when playing an HLS stream:

- Safari Desktop: native Audio through Howler
- Chrome Desktop: HLS.js (Chrome doesn’t support HLS on Native Audio default)
- Firefox Desktop: HLS.js (Firefox doesn’t support HLS on Native Audio by default)