1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 12:56:41 +07:00

AudioPlayer initial

This commit is contained in:
Fedor Katurov 2019-10-13 17:47:13 +07:00
parent d1e369f723
commit f66825a9ea
12 changed files with 190 additions and 26 deletions

View file

@ -1,3 +1,7 @@
import { store } from '~/redux/store';
import { playerSetStatus } from '~/redux/player/actions';
import { PLAYER_STATES } from '~/redux/player/constants';
type PlayerEventType = keyof HTMLMediaElementEventMap;
type PlayerEventListener = (
@ -38,7 +42,7 @@ export class PlayerClass {
this.element.addEventListener(type, callback);
};
public off = (type: PlayerEventType, callback: PlayerEventListener) => {
public off = (type: string, callback) => {
this.element.removeEventListener(type, callback);
};
@ -50,6 +54,10 @@ export class PlayerClass {
this.element.play();
};
public pause = () => {
this.element.pause();
};
public getDuration = () => {
return this.element.currentTime;
};
@ -65,6 +73,9 @@ export class PlayerClass {
const Player = new PlayerClass();
Player.element.addEventListener('playprogress', ({ detail }: CustomEvent) => console.log(detail));
// Player.element.addEventListener('playprogress', ({ detail }: CustomEvent) => console.log(detail));
Player.on('play', () => store.dispatch(playerSetStatus(PLAYER_STATES.PLAYING)));
Player.on('pause', () => store.dispatch(playerSetStatus(PLAYER_STATES.PAUSED)));
export { Player };