Based on a pen I've created 2 years ago. Due to requests from many people I decided to create a repository, containing an improved version of the Green Audio Player including the support for multiple audio players on a single page.
Download repository ZIP.
Alternatively, you can load it from CDN:
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/greghub/green-audio-player/dist/css/green-audio-player.min.css">
<script src="https://cdn.jsdelivr.net/gh/greghub/green-audio-player/dist/js/green-audio-player.min.js"></script>
npm i green-audio-player
Include the green-audio-player.css
or green-audio-player.min.css
file:
<link rel="stylesheet" type="text/css" href="{path}/dist/css/green-audio-player.min.css">
and green-audio-player.js
file (or green-audio-player.min.js
):
<script src="{path}/dist/js/green-audio-player.js"></script>
Add the audio tag inside of a container. You are free to add any attributes. Green Audio Player does not change the audio tag, so for example if you want the audio to loop, you can add the loop attribute to the audio tag.
<div class="gap-example">
<audio>
<source src="audio/example-1.mp3" type="audio/mpeg">
</audio>
</div>
This will initialize the Green Audio Player
new GreenAudioPlayer('.gap-example');
You can add multiple players on a single page.
There's a shorter method for initializing several Green Audio Players:
GreenAudioPlayer.init({
selector: '.player', // inits Green Audio Player on each audio container that has class "player"
stopOthersOnPlay: true
});
Refer to /examples
folder for demos of single and multiple players.
Option | Description | Values | Default |
---|---|---|---|
stopOthersOnPlay | Whether other audio players shall get paused when hitting play | true , false |
false |
showDownloadButton | Allow audio file download. Displays the download button. | true , false |
false |
enableKeystrokes | Players have keystrokes associated with functions. | true , false |
false |
showTooltips | Labels for play, volume and download buttons visible on focus | true , false |
false |
The tooltip option requires setting showTooltips
to true on your player.
In order to improve accessibility, keyboard navigation can be enabled, by passing the enableKeystrokes
option.
By default, the outline is disabled on elements.
If you want to add outline to elements add player-accessible
class to the player element:
<div class="player-1 player-accessible">
...
</div>
You can focus on elements with Tab key and use the following keys to use the player controls.
Key | Action |
---|---|
Tab | Focus on the next element |
Shift + Tab | Focus on the previous element |
Enter or Spacebar | Pause/Play |
Right Arrow | Fast-forward |
Left Arrow | Rewind |
Enter or Spacebar | Show/hide volume slider |
Up Arrow | Increase volume |
Down Arrow | Decrease volume |
Enter | Download |