react-native-theoplayer
Version:
A THEOplayer video component for react-native.
44 lines (41 loc) • 1.36 kB
JavaScript
;
import { DefaultEventDispatcher } from '../adapter/event/DefaultEventDispatcher';
import * as THEOplayerWeb from 'theoplayer';
import { WebCachingTaskAdapter } from './WebCachingTaskAdapter';
import { CacheEventType } from 'react-native-theoplayer';
export class WebMediaCache extends DefaultEventDispatcher {
constructor() {
super();
THEOplayerWeb.cache.tasks.addEventListener('addtask', this.onAddTask);
THEOplayerWeb.cache.tasks.addEventListener('removetask', this.onRemoveTask);
}
onAddTask = event => {
this.dispatchEvent({
type: CacheEventType.addtask,
task: new WebCachingTaskAdapter(event.task),
date: event.date
});
};
onRemoveTask = event => {
this.dispatchEvent({
type: CacheEventType.removetask,
task: new WebCachingTaskAdapter(event.task),
date: event.date
});
};
createTask(source, parameters) {
return Promise.resolve(new WebCachingTaskAdapter(THEOplayerWeb.cache.createTask(source, parameters)));
}
get status() {
return THEOplayerWeb.cache.status;
}
// @ts-ignore
get tasks() {
return THEOplayerWeb.cache.tasks.map(task => new WebCachingTaskAdapter(task));
}
}
export const MediaCache = new WebMediaCache();
// Expose cache for easy access
// @ts-ignore
window.MediaCache = MediaCache;
//# sourceMappingURL=MediaCache.web.js.map