Simple Ionic music player with HTML 5

Ravikiran Reddy
terralogicinc
Published in
2 min readSep 24, 2018

There are several audio plugins available in ionic. Trying with HTML5 audio APIs, this article will explain how to create a very simple and plain ionic music player app with HTML5.

As we proceed to this tutorial, it is assumed that npm, node & cordova are already installed.

If you haven’t install ionic, you can install by using below command

npm install -g cordova ionic

Once you installed ionic, you can start a fresh app with below command

ionic start Ionic Music Player tabs

There are other types of ionic apps you can start with. i.e., blank, tabs, side menu. If you want more clarification on this you can ready Ionic Official documentation.

Now, you completed the initial app setup. To check in the browser with “ionic serve” command. This will open in any of your favorite browsers by using inspect element, you can view as mobile (Chrome and Firefox).

Creating a Player provider:

I have created a provider to set up my basic HTML 5 audio functions like Play, Pause and Stop.

ionic generate provider player

This will create a player folder with a basic class file under providers folder. If you don’t have any providers, don’t worry ionic will create a providers folder also. Along with this, above command will add provider in app.module.ts.

Now you have done setting up the provider. Now, we can add our code in the player provider.

My Player provider code looks like below

Create a new Object for music:

audioObj(song) {

return new Audio(song);

}

Play:

I am expecting a parameter called song (This we can send from ionic page)

play(song) {

if(this.url != undefined && this.url != song){

this.stream.currentTime = 0;

this.currentTime = 0;

this.url = song;

} else {

this.url = song;

}

this.stream.pause();

this.stream = this.audioObj(song);

if(this.currentTime > 0){

this.stream.currentTime = this.currentTime;

}

this.stream.play();

this.promise = new Promise((resolve,reject) => {

this.stream.addEventListener(‘playing’, () => {

console.log(“playing”)

resolve(this.stream.duration);

});

this.stream.addEventListener(‘error’, () => {

reject(false);

});

});

return this.promise;

};

Pause:

pause() {

this.currentTime = this.stream.currentTime;

this.stream.pause();

};

Stop:

stop() {

this.currentTime = 0;

this.stream.currentTime = 0;

this.stream.pause();

};

To find Duration and current time:

duration() {

return this.stream.duration;

};

currenttime() {

return this.stream.currentTime;

}

To get streaming information:

getStream(){

return this.stream;

}

Once your player provider is loaded with basic functionalities, you can start implementing your app.

You can clone my basic project for Music Player here.

Happy coding.

--

--