Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michael-gillett/node-stream-player
A Node.js library for streaming mp3 to your speakers
https://github.com/michael-gillett/node-stream-player
Last synced: 4 months ago
JSON representation
A Node.js library for streaming mp3 to your speakers
- Host: GitHub
- URL: https://github.com/michael-gillett/node-stream-player
- Owner: michael-gillett
- License: mit
- Archived: true
- Created: 2015-07-27T19:45:00.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-20T18:16:36.000Z (about 9 years ago)
- Last Synced: 2024-08-12T18:23:33.584Z (4 months ago)
- Language: JavaScript
- Homepage: https://npmjs.com/stream-player
- Size: 25.4 KB
- Stars: 29
- Watchers: 1
- Forks: 20
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-stream-player
[![npm version](https://badge.fury.io/js/stream-player.svg)](http://badge.fury.io/js/stream-player)For all of your mp3 streaming needs. Queue mp3 streams and play them through your computers speakers.
## Installation
```
$ npm install stream-player
```## Example
```javascript
var StreamPlayer = require('stream-player');
var player = new StreamPlayer();// Add a song url to the queue
player.add('http://path-to-mp3.com/example.mp3');// Add a song url to the queue along with some metadata about the song
// Metadata can be any object that you want in any format you want
var metadata = {
"title": "Some song",
"artist": "Some artist",
"duration": 234000,
"humanTime": "3:54"
};player.add('http://path-to-mp3.com/example.mp3', metaData);
// Start playing all songs added to the queue (FIFO)
player.play();// Get the metadata for the current playing song and a time stamp when it started playing
player.nowPlaying();// Get an array of metadata for the songs in the queue (excludes the current playing song)
player.getQueue();// Get if the player is currently playing
player.isPlaying()// EMIT EVENTS
player.on('play start', function() {
// Code here is executed every time a song starts playing
});player.on('play end', function() {
// Code here is executed every time a song ends
});player.on('song added', function() {
// Code here is executed every time a song is added to the queue
});```
## Methods
### `add(url [, metadata])`
Adds the mp3 stream located at `url` to the queue. The optional metadata parameter can be any JS object that holds information about the song. If no metadata is given then it will be `undefined` when referenced.
### `play()`
Starts playing the next song in the queue out of the speakers.
`throws new Error('A song is already playing.')`
`throws new Error('The queue is empty.')`
### `pause()`
Pause the current playing sound. Call `play()` to resume.
### `getQueue()`
Returns an array of song metadata in the queue.
### `isPlaying()`
Returns true if a song is currently playing and false otherwise.
### `nowPlaying()`
Returns an object containing the current playing song's metadata and the Unix time stamp of when the song started playing.
`throws new Error('No song is currently playing.')`
###### Example
```javascript
{
track: {
title: "Some song",
artist: "Some artist"
},
timestamp: 1438489161
}
```### Roadmap
- Support for more audio file types