Upload tbd
This commit is contained in:
61
LocalRadioPlayer.js
Normal file
61
LocalRadioPlayer.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
const EventEmitter = require('events');
|
||||||
|
|
||||||
|
class LocalRadioPlayer extends EventEmitter {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
this._stations = {
|
||||||
|
'Rock': 'http://localhost:8000/rock',
|
||||||
|
'Pop': 'http://localhost:8000/pop',
|
||||||
|
'Jazz': 'http://localhost:8000/jazz',
|
||||||
|
'Classical': 'http://localhost:8000/classical',
|
||||||
|
'Electronic': 'http://localhost:8000/electronic',
|
||||||
|
'Hip-Hop': 'http://localhost:8000/hiphop'
|
||||||
|
};
|
||||||
|
this._audio = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
getStations(options) {
|
||||||
|
return Promise.resolve(Object.keys(this._stations).map(genre => ({
|
||||||
|
name: genre,
|
||||||
|
id: genre
|
||||||
|
})));
|
||||||
|
}
|
||||||
|
|
||||||
|
play(stationData) {
|
||||||
|
if (this._audio) {
|
||||||
|
this._audio.pause();
|
||||||
|
}
|
||||||
|
const streamUrl = this._stations[stationData.id];
|
||||||
|
if (!streamUrl) {
|
||||||
|
this.emit('error', new Error(`Station ${stationData.id} not found.`));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._audio = new Audio(streamUrl);
|
||||||
|
this._audio.play()
|
||||||
|
.then(() => {
|
||||||
|
this.emit('song-data', {
|
||||||
|
title: `Streaming ${stationData.id}`,
|
||||||
|
artist: 'Local Radio',
|
||||||
|
albumArt: ''
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
this.emit('error', err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
if (this._audio) {
|
||||||
|
this._audio.pause();
|
||||||
|
this._audio = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resizeArtwork(options) {
|
||||||
|
// Not applicable for local streaming without metadata
|
||||||
|
return Promise.resolve('');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = LocalRadioPlayer;
|
||||||
11
index.js
Normal file
11
index.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
const LocalRadioPlayer = require('./LocalRadioPlayer');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {RadioPlayer}
|
||||||
|
*
|
||||||
|
* i tried to make the radio work as well, coldnt get it to work :(
|
||||||
|
*/
|
||||||
|
module.exports = function createRadio() {
|
||||||
|
return new LocalRadioPlayer();
|
||||||
|
};
|
||||||
|
|
||||||
20
package.json
Normal file
20
package.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "jibo-tbd",
|
||||||
|
"version": "3.3.0 InDev",
|
||||||
|
"description": "Jibo full-stack release version",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git@github.jibo.com:rm/jibo-version.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"full-stack",
|
||||||
|
"release",
|
||||||
|
"version"
|
||||||
|
],
|
||||||
|
"author": "JiboRevivalGroup",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
4
release_notes.json
Normal file
4
release_notes.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"spoken": "Last dance. Last chance, for love.",
|
||||||
|
"enableProactive": true
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user