gs-player v0.2.5
gs-player
Simple music player user interface that easily adapts to any website interface.
Try the demo
Current version: Beta
This libriry was inspired by rxjs-audio and uses part of its source code. Thank you imsingh for let me use your tutorial and library.
Table of contents:
- Installation
- Getting Started
- Usage
- Library interfaces
- Library constants
- Testing
- Versioning
- Developer
- License
- Donate
Installation
npm install gs-player --save
Getting Started
Add GsPlayerModule
into the imports array of the module that will use gs-player
import { GsPlayerModule} from 'gs-player';
@NgModule({
imports: [
// ...
GsPlayerModule
],
})
export class AppModule { }
Usage
Add gs-player to your code:
Add gs-player
component to your HTML, import interfaces and define properties
HTML ex. app.component.html
<h1>My website</h1>
<gs-player></gs-player>
TS ex. app.component.ts
import { PlayerFile, PlayerTheme, PlayerThemeDark, PlayerThemeLight } from 'gs-player';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
// Array of PlayerFiles (file url, name, artist and album)
public files: Array<PlayerFile>;
// Player color theme (one of PlayerThemeDark or PlayerThemeLight)
// You can also crete your own color theme
public playerTheme: PlayerTheme = PlayerThemeLight;
Pass tracks to gs-player:
To play audio in gs-player
you must pass the files
property. An array of PlayerFile:
HTML ex. app.component.html
<h1>My website</h1>
<gs-player
[files]="files">
</gs-player>
TS ex. app.component.ts
export class AppComponent {
// Array of PlayerFiles (file url, name, artist and album)
// artist and album are optionals
public files: Array<PlayerFile> = files: Array<PlayerFile> = [
{
url: 'url-to-audio-file.mp3',
name: 'My audio',
artist: 'Me',
album: 'My album'
}
];
At this point you should be able to play audio using gs-player
.
Customise gs-player:
You can change gs-player
color to fit your UI. The library have to themes by default:
- PlayerThemeLight: For dark background
- PlayerThemeDark: For bright background
Use themes as follow:
HTML ex. app.component.html
<h1>My website</h1>
<gs-player
[files]="files"
[playerTheme]="playerTheme">
</gs-player>
TS ex. app.component.ts
// import themes from `gs-player`
import { PlayerThemeDark, PlayerThemeLight } from 'gs-player';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
public playerTheme = PlayerThemeLight;
You can create your own themes using your own colors:
TS ex. app.component.ts
// import PlayerTheme interface from `gs-player`
import { PlayerTheme } from 'gs-player';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
public playerTheme: {
// HTML/CSS Color Name, Hex Code #RRGGBB, Decimal Code (R,G,B)
primary: 'red',
secondary: 'blue'
};
Library interfaces
Interfaces can be used inside your project.
Available interfaces
Name | Description |
---|---|
PlayerStreamState | Stream state, used to manage the file being played |
PlayerFile | A file to be played |
PlayerCurrentFile | File being played |
PlayerTheme | Player theme. Can be used to create themes |
PlayerStreamState properties
Name | Type | ||
---|---|---|---|
playing | boolean | required | |
readableCurrentTime | string | required | |
readableDuration | string | required | |
duration | number | undefined | required |
currentTime | number | undefined | required |
canplay | boolean | required | |
error | boolean | required |
PlayerFile properties
Name | Type | |
---|---|---|
url | string | required |
name | string | required |
artist | string | optional |
album | string | optional |
PlayerCurrentFile properties
Name | Type | |
---|---|---|
index | number | required |
file | PlayerFile | required |
PlayerTheme properties
Name | Type | |
---|---|---|
primary | string | required |
secondary | string | required |
Library constants
Constants can be used inside your project.
Available constants
Name | Description |
---|---|
PlayerThemeLight | Light color theme, good for dark background |
PlayerThemeDark | Dark color theme, good for bright background |
PlayerThemeLight properties
Name | value |
---|---|
primary | '#fff' |
secondary | '#eee' |
PlayerThemeDark properties
Name | value |
---|---|
primary | '#222' |
secondary | '#eee' |
Testing
- Download the source code
- Install dependencies
npm install
- Run demo
ng serve
Versioning
gs-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.
Developer
Gustavo Santamaria
License
The MIT License (MIT)
Donate
If you like my work you can buy me a coffe
or pizza
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago