@playkit-js/playkit-js
Version:
[](https://github.com/kaltura/playkit-js/actions/workflows/run_canary.yaml) [ • 2.07 kB
text/typescript
import Middleware from './middleware';
import BaseMiddleware from './base-middleware';
/**
* The playback middleware.
*/
export default class PlaybackMiddleware {
/**
* The actions of the playback middleware.
* @static
*/
public static Actions: {[action: string]: string} = {
LOAD: 'load',
PLAY: 'play',
PAUSE: 'pause',
SET_CURRENT_TIME: 'setCurrentTime'
};
/**
* The middleware implementation.
* @private
* @member
*/
private _middleware: Middleware;
/**
* @constructor
*/
constructor() {
this._middleware = new Middleware(PlaybackMiddleware.Actions);
}
/**
* Registers a playback middleware instance to the middleware chain.
* @param {BaseMiddleware} middlewareInstance - The middleware instance.
* @public
* @returns {void}
*/
public use(middlewareInstance: BaseMiddleware): void {
this._middleware.use(middlewareInstance);
}
/**
* Runs a load chain.
* @param {Function} callback - The last load handler in the chain.
* @public
* @returns {void}
*/
public load(callback: () => void): void {
this._middleware.run(PlaybackMiddleware.Actions.LOAD, callback);
}
/**
* Runs a play chain.
* @param {Function} callback - The last play handler in the chain.
* @public
* @returns {void}
*/
public play(callback: () => any): void {
this._middleware.run(PlaybackMiddleware.Actions.PLAY, callback);
}
/**
* Runs a pause chain.
* @param {Function} callback - The last pause handler in the chain.
* @public
* @returns {void}
*/
public pause(callback: () => any): void {
this._middleware.run(PlaybackMiddleware.Actions.PAUSE, callback);
}
/**
* Runs a setCurrentTime chain.
* @param {Number} to - The number to set in seconds.
* @param {Function} callback - The last setCurrentTime handler in the chain.
* @public
* @returns {void}
*/
public setCurrentTime(to: number, callback: () => any): void {
this._middleware.run(PlaybackMiddleware.Actions.SET_CURRENT_TIME, callback, to);
}
}