From 139b2d0de4a80fc94ab730a684f63c77d85696b5 Mon Sep 17 00:00:00 2001 From: db123 Date: Thu, 23 Apr 2026 22:18:07 +0330 Subject: [PATCH] feat: implemented and passed correct api of player --- src/adapters/Native.ts | 45 ++++++++++++++++++++--------------------- src/core/VideoPlayer.ts | 45 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 24 deletions(-) diff --git a/src/adapters/Native.ts b/src/adapters/Native.ts index bac7f27..bf2883a 100644 --- a/src/adapters/Native.ts +++ b/src/adapters/Native.ts @@ -30,11 +30,11 @@ export class NativeAdapter implements AdapterAPI { } destroy(): void { - this.pause(); + this.video.pause(); this.video.load(); } - seek(time: number): void { + private seek(time: number): void { if (this.video.fastSeek) { this.video.fastSeek(time); } else { @@ -42,31 +42,30 @@ export class NativeAdapter implements AdapterAPI { } } - currentTime(): number { + get time(): number { return this.video.currentTime; } + set time(time: number) { + this.seek(time); + } + + get volume(): number { + return this.video.volume; + } + + set volume(volume: number) { + this.video.volume = volume; + } + + get muted(): boolean { + return this.video.muted; + } + set muted(muted: boolean) { + this.video.muted = muted; + } + duration(): number { return this.video.duration; } - - volume(volume: number): void { - this.video.volume = volume; - } - - currentVolume(): number { - return this.video.volume; - } - - mute(muted?: boolean): void { - if (muted !== undefined) { - this.video.muted = muted; - } else { - this.video.muted = !this.video.muted; - } - } - - muted(): boolean { - return this.video.muted; - } } diff --git a/src/core/VideoPlayer.ts b/src/core/VideoPlayer.ts index c25e3b1..e4575fb 100644 --- a/src/core/VideoPlayer.ts +++ b/src/core/VideoPlayer.ts @@ -12,7 +12,7 @@ export class VP { private video: HTMLVideoElement | null; private videoSrc?: NodeListOf; private config?: PlayerConfig; - private adapter?: AdapterAPI; + private adapter: AdapterAPI; /** * @param video The targeted video element or id @@ -33,4 +33,47 @@ export class VP { this.videoSrc = this.video?.querySelectorAll("source"); this.adapter = new NativeAdapter(this.video); } + + load(): void { + this.adapter.load(); + } + + play(): void { + this.adapter.play(); + } + + pause(): void { + this.adapter.pause(); + } + + destroy(): void { + this.adapter.destroy(); + } + + get time(): number { + return this.adapter.time; + } + + set time(time: number) { + this.adapter.time = time; + } + + get volume(): number { + return this.adapter.volume; + } + + set volume(volume: number) { + this.adapter.volume = volume; + } + + get muted(): boolean { + return this.adapter.muted; + } + set muted(muted: boolean) { + this.adapter.muted = muted; + } + + duration(): number { + return this.adapter.duration(); + } }