Skip to content

Commit

Permalink
feat: expose playback rates api (#165)
Browse files Browse the repository at this point in the history
Expose api to get the possible player playback rates
player.playbackRates; // [0.5, 1, 2, 4]
Expose api to get the default playback rate
player.defaultPlaybackRate; // 1
  • Loading branch information
Dan Ziv committed Nov 26, 2017
1 parent 6185bd0 commit c6aa6c1
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 18 deletions.
71 changes: 53 additions & 18 deletions src/player.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,20 @@ import PlaybackMiddleware from './middleware/playback-middleware'
import DefaultPlayerConfig from './player-config.json'
import './assets/style.css'

/**
* The player playback rates.
* @type {Array<number>}
* @const
*/
const PLAYBACK_RATES = [0.5, 1, 2, 4];

/**
* The player default playback rate.
* @type {number}
* @const
*/
const DEFAULT_PLAYBACK_RATE = 1;

/**
* The player container class name.
* @type {string}
Expand Down Expand Up @@ -655,6 +669,22 @@ export default class Player extends FakeEventTarget {
}
}

/**
* Gets the possible playback speeds of the video.
* @returns {Array<number>} - The possible playback speeds speed of the video.
*/
get playbackRates(): Array<number> {
return PLAYBACK_RATES;
}

/**
* Gets the default playback speed of the video.
* @returns {number} - The default playback speed of the video.
*/
get defaultPlaybackRate(): number {
return DEFAULT_PLAYBACK_RATE;
}

/**
* get the engine type
* @returns {string} - html5
Expand Down Expand Up @@ -978,6 +1008,29 @@ export default class Player extends FakeEventTarget {

// </editor-fold>

// <editor-fold desc="Logger API">

/**
* get the log level
* @param {?string} name - the logger name
* @returns {Object} - the log level
*/
getLogLevel(name?: string): Object {
return getLogLevel(name);
}

/**
* sets the logger level
* @param {Object} level - the log level
* @param {?string} name - the logger name
* @returns {void}
*/
setLogLevel(level: Object, name?: string) {
setLogLevel(level, name);
}

// </editor-fold>

// </editor-fold>

// <editor-fold desc="Private Methods">
Expand Down Expand Up @@ -1603,22 +1656,4 @@ export default class Player extends FakeEventTarget {
}

// </editor-fold>
/**
* get the log level
* @param {?string} name - the logger name
* @returns {Object} - the log level
*/
getLogLevel(name?: string): Object {
return getLogLevel(name);
}

/**
* sets the logger level
* @param {Object} level - the log level
* @param {?string} name - the logger name
* @returns {void}
*/
setLogLevel(level: Object, name?: string) {
setLogLevel(level, name);
}
}
12 changes: 12 additions & 0 deletions test/src/player.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2693,3 +2693,15 @@ describe('logger', () => {
currentLogLevel.should.equal(player.LogLevel.DEBUG);
});
});

describe('playbackRate', () => {
it('should return the possible playback rates of the player', () => {
const player = new Player();
player.playbackRates.should.deep.equal([0.5, 1, 2, 4]);
});

it('should return the default playback rate of the player', () => {
const player = new Player();
player.defaultPlaybackRate.should.equal(1);
});
});

0 comments on commit c6aa6c1

Please sign in to comment.