Home

Awesome

A library for loading and playing audio using HTML 5 for Angular 7/8/9/10/11.
(https://vmudigal.github.io/ngx-audio-player/)

Travis-CI npm npm version Downloads licence Support Support Support Support Support

Table of contents

Demo

A simple, clean, responsive player for playing multiple audios with playlist support.

alt tag

Working Demo

Installation

ngx-audio-player is available via npm and yarn

Using npm:

$ npm install ngx-audio-player --save

Using yarn:

$ yarn add ngx-audio-player

Getting Started

NgxAudioPlayerModule needs Angular Material.
Make sure you have installed below dependencies with same or higher version than mentioned.

"@angular/core": "^11.0.0"
"@angular/common": "^11.0.0"
"@angular/material": "^11.0.0"
"rxjs": "^6.6.3"

Import NgxAudioPlayerModule in in the root module(AppModule):

// Import library module
import { NgxAudioPlayerModule } from 'ngx-audio-player';

@NgModule({
  imports: [
    // ...
    NgxAudioPlayerModule
  ]
})
export class AppModule { }

Usage

HTML
<ngx-audio-player [playlist]="msaapPlaylist" [displayTitle]="msaapDisplayTitle" [autoPlay]="false" 
    muted="muted" [displayPlaylist]="msaapDisplayPlayList" [pageSizeOptions]="pageSizeOptions" (trackEnded)="onEnded($event)"
        [displayVolumeControls]="msaapDisplayVolumeControls" [displayRepeatControls]="msaapDisplayRepeatControls"
        [disablePositionSlider]="msaapDisablePositionSlider" [displayArtist]="msaapDisplayArtist" 
        [displayDuration]="msaapDisplayDuration" [expanded]="true"></ngx-audio-player> 
TS
import { Track } from 'ngx-audio-player';   
   
.   
.   

msaapDisplayTitle = true;
msaapDisplayPlayList = true;
msaapPageSizeOptions = [2,4,6];
msaapDisplayVolumeControls = true;
msaapDisplayRepeatControls = true;
msaapDisplayArtist = false;
msaapDisplayDuration = false;
msaapDisablePositionSlider = true;
   
// Material Style Advance Audio Player Playlist
msaapPlaylist: Track[] = [
  {
    title: 'Audio One Title',
    link: 'Link to Audio One URL',
    artist: 'Audio One Artist',
    duration: 'Audio One Duration in seconds'
  },
  {
    title: 'Audio Two Title',
    link: 'Link to Audio Two URL',
    artist: 'Audio Two Artist',
    duration: 'Audio Two Duration in seconds'
  },
  {
    title: 'Audio Three Title',
    link: 'Link to Audio Three URL',
    artist: 'Audio Three Artist',
    duration: 'Audio Three Duration in seconds'
  },
];
Properties
NameDescriptionTypeDefault Value
@Input() playlist: Track[];playlist containing array of title and linkmandatoryNone
@Input() autoPlay: false;true - if the audio needs to be played automaticllyoptionalfalse
@Input() displayTitle: true;false - if the audio title needs to be hiddenoptionaltrue
@Input() displayPlaylist: true;false - if the playlist needs to be hiddenoptionaltrue
@Input() pageSizeOptions = [10, 20, 30];number of items to be displayed in the playlistoptional[10,20,30]
@Input() expanded = true;false - if the playlist needs to be minimizedoptionaltrue
@Input() displayVolumeControls = true;false - if the volume controls needs to be hiddenoptionaltrue
@Input() displayRepeatControls = true;false - if the repeat controls needs to be hiddenoptionaltrue
@Input() displayArtist = false;true - if the artist data is to be shownoptionalfalse
@Input() displayDuration = false;true - if the track duration is to be shownoptionalfalse
@Output() trackEnded: Subject<string>Callback method that triggers once the track endsoptional- N.A -
@Input() startOffset = 0;offset from start of audio file in secondsoptional0
@Input() endOffset = 0;offset from end of audio file in secondsoptional0
@Input() disablePositionSlider = false;true - if the position slider needs to be disabledoptionalfalse

Versioning

ngx-audio-player will be maintained under the Semantic Versioning guidelines. Releases will be numbered with the following format:

<major>.<minor>.<patch>

For more information on SemVer, please visit http://semver.org.

Contributors ✨

Thanks goes to these wonderful people:

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table align="center"> <tr> <td align="center"><a href="https://github.com/EdricChan03"><img src="https://avatars.githubusercontent.com/u/20047125?v=4" width="100px;" alt=""/><br /><sub><b>Edric Chan</b></sub></a><br /><a href="https://github.com/vmudigal/ngx-audio-player/commits?author=EdricChan03" title="Code">💻</a></td> <td align="center"><a href="https://github.com/RokiFoki"><img src="https://avatars3.githubusercontent.com/u/9476596?v=4" width="100px;" alt=""/><br /><sub><b>RokiFoki</b></sub></a><br /><a href="https://github.com/vmudigal/ngx-audio-player/commits?author=RokiFoki" title="Code">💻</a></td> <td align="center"><a href="https://github.com/ewwwgiddings"><img src="https://avatars.githubusercontent.com/u/26286559?v=4" width="100px;" alt=""/><br /><sub><b>ewwwgiddings</b></sub></a><br /><a href="https://github.com/vmudigal/ngx-audio-player/commits?author=ewwwgiddings" title="Documentation">📖</a></td> <td align="center"><a href="https://github.com/cicsolutions"><img src="https://avatars1.githubusercontent.com/u/5200361?v=4" width="100px;" alt=""/><br /><sub><b>Caleb Crosby</b></sub></a><br /><a href="https://github.com/vmudigal/ngx-audio-player/commits?author=cicsolutions" title="Code">💻</a></td> <td align="center"><a href="https://github.com/6utt3rfly"><img src="https://avatars1.githubusercontent.com/u/17912877?v=4" width="100px;" alt=""/><br /><sub><b>Shelly</b></sub></a><br /><a href="https://github.com/vmudigal/ngx-audio-player/commits?author=6utt3rfly" title="Code">💻</a></td> <td align="center"><a href="https://github.com/Urinprobe"><img src="https://avatars1.githubusercontent.com/u/22059384?v=4" width="100px;" alt=""/><br /><sub><b>Simon Reinsch</b></sub></a><br /><a href="https://github.com/vmudigal/ngx-audio-player/commits?author=Urinprobe" title="Code">💻</a></td> </tr> </table> <!-- markdownlint-enable --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->

Misc

License

The MIT License (MIT)

Donate

If you like my work you can buy me a :beer: or :pizza:

Donate