raspi-io-server-utils
Version:
Utilities for interacting with Raspberry IOs and Raspbian
71 lines • 5.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const abstract_player_1 = require("./abstract-player");
const childProcess = require('child_process');
class OmxPlayer extends abstract_player_1.AbstractPlayer {
static checkAvailability() {
return new Promise((resolve, reject) => {
childProcess.exec('omxplayer --version', (err) => {
if (err)
reject();
else
resolve();
});
});
}
constructor(file) {
super(file);
}
get running() {
return !!this._process;
}
get playerName() {
return 'omxplayer';
}
get _omxVolume() {
return Math.round(this._volume / 100 * 5000 - 5000);
}
get videoArgs() {
return this.isVideo ? '-b' : '';
}
_start() {
const playerArgs = this.videoArgs.split(' ')
.concat(`-no-osd --no-keys --vol ${this._omxVolume}`.split(' '), this.file)
.filter(arg => arg.length > 0);
console.log('Player args: ', JSON.stringify(playerArgs));
this._process = childProcess.spawn('omxplayer', playerArgs);
this._process.stderr.on('data', (data) => {
console.error(data.toString());
});
this._process.stdout.on('data', (data) => {
console.log(data.toString());
});
this._process.on('exit', () => {
console.log('Exited.');
this._stopped();
});
this._process.on('error', (err) => {
console.error('Error!', err);
this._stopped();
});
this._started();
}
_stop() {
if (this._process) {
this._process.kill('SIGINT');
try {
childProcess.execSync('killall -SIGINT omxplayer.bin');
}
catch (e) {
// Not running anymore.
}
}
}
_stopped() {
this._process.removeAllListeners();
this._process = undefined;
super._stopped();
}
}
exports.OmxPlayer = OmxPlayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib214LXBsYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdnBsYXllci9vbXgtcGxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQW1EO0FBRW5ELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBRSxlQUFlLENBQUUsQ0FBQztBQUVoRCxNQUFhLFNBQVUsU0FBUSxnQ0FBYztJQUV6QyxNQUFNLENBQUMsaUJBQWlCO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUUsQ0FBRSxPQUFPLEVBQUUsTUFBTSxFQUFHLEVBQUU7WUFDdEMsWUFBWSxDQUFDLElBQUksQ0FBRSxxQkFBcUIsRUFBRSxDQUFFLEdBQVcsRUFBRyxFQUFFO2dCQUN4RCxJQUFLLEdBQUc7b0JBQUcsTUFBTSxFQUFFLENBQUM7O29CQUNmLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBRSxDQUFDO1FBQ1IsQ0FBQyxDQUFFLENBQUM7SUFDUixDQUFDO0lBRUQsWUFBYSxJQUFhO1FBQ3RCLEtBQUssQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU07UUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBRSxHQUFHLENBQUU7YUFDekMsTUFBTSxDQUFFLDJCQUEyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFFLEdBQUcsQ0FBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUU7YUFDOUUsTUFBTSxDQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFFLFVBQVUsQ0FBRSxDQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUM5QixXQUFXLEVBQ1gsVUFBVSxDQUNiLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUUsTUFBTSxFQUFFLENBQUUsSUFBYSxFQUFHLEVBQUU7WUFDakQsT0FBTyxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUUsQ0FBQztRQUVKLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBRSxNQUFNLEVBQUUsQ0FBRSxJQUFhLEVBQUcsRUFBRTtZQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBRSxDQUFDO1FBQ25DLENBQUMsQ0FBRSxDQUFDO1FBRUosSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUMzQixPQUFPLENBQUMsR0FBRyxDQUFFLFNBQVMsQ0FBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUUsQ0FBQztRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFFLE9BQU8sRUFBRSxDQUFFLEdBQVcsRUFBRyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUUsQ0FBQztRQUVKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSztRQUNELElBQUssSUFBSSxDQUFDLFFBQVEsRUFBRztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxRQUFRLENBQUUsQ0FBQztZQUMvQixJQUFJO2dCQUNBLFlBQVksQ0FBQyxRQUFRLENBQUUsK0JBQStCLENBQUUsQ0FBQzthQUM1RDtZQUFDLE9BQVEsQ0FBQyxFQUFHO2dCQUNWLHVCQUF1QjthQUMxQjtTQUNKO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFFMUIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FFSjtBQS9FRCw4QkErRUMifQ==