playable
Version:
Video player based on HTML5Video
50 lines (37 loc) • 998 B
text/typescript
import playerAPI from '../../../core/player-api-decorator';
import { IPlaybackEngine } from '../../playback-engine/types';
import { getAt } from './adapter';
import {
IPreviewAPI,
IPreviewService,
IFramesData,
INormalizedFramesQuality,
} from './types';
class PreviewService implements IPreviewService {
static moduleName = 'previewService';
static dependencies = ['engine'];
private _engine: IPlaybackEngine;
private _framesMap: IFramesData;
constructor({ engine }: { engine: IPlaybackEngine }) {
this._engine = engine;
}
()
setFramesMap(map: IFramesData) {
this._framesMap = map;
}
getAt(second: number): INormalizedFramesQuality[] {
if (!this._framesMap) {
return;
}
const duration = this._engine.getDuration();
if (!duration) {
return;
}
return getAt(this._framesMap, second, duration);
}
destroy(): void {
this._framesMap = null;
}
}
export { IPreviewAPI };
export default PreviewService;