UNPKG

raspi-io-server-utils

Version:

Utilities for interacting with Raspberry IOs and Raspbian

71 lines 5.15 kB
"use strict"; 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==