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:
parent
d1e369f723
commit
f66825a9ea
12 changed files with 190 additions and 26 deletions
|
@ -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 };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue