kplayer-ts 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +466 -138
- package/dist/{kplayer.cjs.js → kplayer-ts.cjs.js} +28 -27
- package/dist/kplayer-ts.cjs.js.map +1 -0
- package/dist/kplayer-ts.d.ts +6 -0
- package/dist/{kplayer.es.js → kplayer-ts.es.js} +255 -238
- package/dist/kplayer-ts.es.js.map +1 -0
- package/dist/{kplayer.umd.js → kplayer-ts.umd.js} +72 -71
- package/dist/kplayer-ts.umd.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/template/player.d.ts +21 -0
- package/dist/template/video.d.ts +12 -0
- package/dist/ts/ad.d.ts +39 -0
- package/dist/ts/bar.d.ts +10 -0
- package/dist/ts/bezel.d.ts +6 -0
- package/dist/ts/contextmenu.d.ts +12 -0
- package/dist/ts/controller.d.ts +38 -0
- package/dist/ts/events.d.ts +11 -0
- package/dist/ts/fullscreen.d.ts +15 -0
- package/dist/ts/hotkey.d.ts +11 -0
- package/dist/ts/i18n.d.ts +6 -0
- package/dist/ts/icons.d.ts +22 -0
- package/dist/ts/index.d.ts +3 -0
- package/dist/ts/info-panel.d.ts +16 -0
- package/dist/ts/options.d.ts +5 -0
- package/dist/ts/player.d.ts +107 -0
- package/dist/ts/setting.d.ts +14 -0
- package/dist/ts/subtitle.d.ts +22 -0
- package/dist/ts/subtitles.d.ts +19 -0
- package/dist/ts/template.d.ts +94 -0
- package/dist/ts/thumbnails.d.ts +18 -0
- package/dist/ts/timer.d.ts +22 -0
- package/dist/ts/types.d.ts +146 -0
- package/dist/ts/user.d.ts +21 -0
- package/dist/ts/utils.d.ts +21 -0
- package/package.json +7 -5
- package/dist/kplayer.cjs.js.map +0 -1
- package/dist/kplayer.css +0 -1
- package/dist/kplayer.es.js.map +0 -1
- package/dist/kplayer.umd.js.map +0 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
export interface VideoQuality {
|
|
2
|
+
name: string;
|
|
3
|
+
url: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface HighlightItem {
|
|
7
|
+
text: string;
|
|
8
|
+
time: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SubtitleItem {
|
|
11
|
+
name?: string;
|
|
12
|
+
url: string;
|
|
13
|
+
lang?: string;
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface SubtitleOptions {
|
|
17
|
+
url: string | SubtitleItem[];
|
|
18
|
+
type?: string;
|
|
19
|
+
fontSize?: string;
|
|
20
|
+
bottom?: string;
|
|
21
|
+
color?: string;
|
|
22
|
+
defaultSubtitle?: string | number;
|
|
23
|
+
index?: number;
|
|
24
|
+
encrypt?: boolean;
|
|
25
|
+
iv?: string;
|
|
26
|
+
key?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface AdItem {
|
|
29
|
+
name?: string;
|
|
30
|
+
type: "image" | "text" | "video";
|
|
31
|
+
url: string;
|
|
32
|
+
backroundColor?: string;
|
|
33
|
+
deeplink?: string;
|
|
34
|
+
startTime?: number;
|
|
35
|
+
skipTime?: number;
|
|
36
|
+
_impressionUrl?: string;
|
|
37
|
+
_isPostroll?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface AdOptions {
|
|
40
|
+
url: AdItem[];
|
|
41
|
+
}
|
|
42
|
+
export interface TitleOptions {
|
|
43
|
+
title?: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
back?: boolean;
|
|
46
|
+
onBack?: (player: unknown) => void;
|
|
47
|
+
}
|
|
48
|
+
export interface ContextMenuItem {
|
|
49
|
+
text?: string;
|
|
50
|
+
key?: string;
|
|
51
|
+
link?: string;
|
|
52
|
+
click?: (player: unknown) => void;
|
|
53
|
+
}
|
|
54
|
+
export interface PluginOptions {
|
|
55
|
+
hls?: Record<string, unknown>;
|
|
56
|
+
flv?: {
|
|
57
|
+
mediaDataSource?: Record<string, unknown>;
|
|
58
|
+
config?: Record<string, unknown>;
|
|
59
|
+
};
|
|
60
|
+
dash?: Record<string, unknown>;
|
|
61
|
+
webtorrent?: Record<string, unknown>;
|
|
62
|
+
}
|
|
63
|
+
export interface VideoOptions {
|
|
64
|
+
url?: string;
|
|
65
|
+
pic?: string;
|
|
66
|
+
thumbnails?: string;
|
|
67
|
+
type?: string;
|
|
68
|
+
quality?: VideoQuality[];
|
|
69
|
+
defaultQuality?: number;
|
|
70
|
+
customType?: Record<string, (video: HTMLVideoElement, player: unknown) => void>;
|
|
71
|
+
}
|
|
72
|
+
export interface KPlayerOptions {
|
|
73
|
+
container: HTMLElement;
|
|
74
|
+
live?: boolean;
|
|
75
|
+
autoplay?: boolean;
|
|
76
|
+
theme?: string;
|
|
77
|
+
loop?: boolean;
|
|
78
|
+
lang?: string;
|
|
79
|
+
screenshot?: boolean;
|
|
80
|
+
airplay?: boolean;
|
|
81
|
+
chromecast?: boolean;
|
|
82
|
+
hotkey?: boolean;
|
|
83
|
+
preload?: string;
|
|
84
|
+
volume?: number;
|
|
85
|
+
playbackSpeed?: number[];
|
|
86
|
+
video: VideoOptions;
|
|
87
|
+
contextmenu?: ContextMenuItem[];
|
|
88
|
+
ad?: AdOptions | null;
|
|
89
|
+
vastAD?: boolean;
|
|
90
|
+
vastADURL?: string;
|
|
91
|
+
mutex?: boolean;
|
|
92
|
+
pluginOptions?: PluginOptions;
|
|
93
|
+
preventClickToggle?: boolean;
|
|
94
|
+
awaken?: AwakenOptions | false;
|
|
95
|
+
subtitle?: SubtitleOptions;
|
|
96
|
+
highlight?: HighlightItem[];
|
|
97
|
+
logo?: string;
|
|
98
|
+
title?: TitleOptions;
|
|
99
|
+
element?: HTMLElement;
|
|
100
|
+
}
|
|
101
|
+
export interface AwakenOptions {
|
|
102
|
+
id?: string;
|
|
103
|
+
api?: string;
|
|
104
|
+
bottom?: string;
|
|
105
|
+
unlimited?: boolean;
|
|
106
|
+
user?: string;
|
|
107
|
+
maximum?: number;
|
|
108
|
+
addition?: string[];
|
|
109
|
+
withCredentials?: boolean;
|
|
110
|
+
speedRate?: number;
|
|
111
|
+
}
|
|
112
|
+
export interface ScrollPosition {
|
|
113
|
+
left: number;
|
|
114
|
+
top: number;
|
|
115
|
+
}
|
|
116
|
+
export interface NameMap {
|
|
117
|
+
dragStart: string;
|
|
118
|
+
dragMove: string;
|
|
119
|
+
dragEnd: string;
|
|
120
|
+
}
|
|
121
|
+
export interface StorageUtil {
|
|
122
|
+
set(key: string, value: string | number): void;
|
|
123
|
+
get(key: string): string | null;
|
|
124
|
+
}
|
|
125
|
+
export interface UtilsInterface {
|
|
126
|
+
secondToTime(second: number): string;
|
|
127
|
+
getElementViewLeft(element: HTMLElement): number;
|
|
128
|
+
getBoundingClientRectViewLeft(element: HTMLElement): number;
|
|
129
|
+
getScrollPosition(): ScrollPosition;
|
|
130
|
+
setScrollPosition(pos: ScrollPosition): void;
|
|
131
|
+
isMobile: boolean;
|
|
132
|
+
isFirefox: boolean;
|
|
133
|
+
isChrome: boolean;
|
|
134
|
+
isSafari: boolean;
|
|
135
|
+
storage: StorageUtil;
|
|
136
|
+
nameMap: NameMap;
|
|
137
|
+
color2Number(color: string): number;
|
|
138
|
+
number2Color(number: number): string;
|
|
139
|
+
number2Type(number: number): string;
|
|
140
|
+
}
|
|
141
|
+
export type FullScreenType = "browser" | "web";
|
|
142
|
+
export interface VMASTAdBreak {
|
|
143
|
+
vastUrl: string;
|
|
144
|
+
startTime: number;
|
|
145
|
+
timeOffset: string;
|
|
146
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { KPlayerOptions } from './types';
|
|
2
|
+
type UserKey = "opacity" | "volume" | "unlimited" | "awaken" | "subtitle";
|
|
3
|
+
interface UserData {
|
|
4
|
+
opacity: number;
|
|
5
|
+
volume: number;
|
|
6
|
+
unlimited: number;
|
|
7
|
+
awaken: number;
|
|
8
|
+
subtitle: number;
|
|
9
|
+
}
|
|
10
|
+
declare class User {
|
|
11
|
+
storageName: Record<UserKey, string>;
|
|
12
|
+
default: UserData;
|
|
13
|
+
data: UserData;
|
|
14
|
+
constructor(player: {
|
|
15
|
+
options: KPlayerOptions;
|
|
16
|
+
});
|
|
17
|
+
init(): void;
|
|
18
|
+
get(key: UserKey): number;
|
|
19
|
+
set(key: UserKey, value: number): void;
|
|
20
|
+
}
|
|
21
|
+
export default User;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ScrollPosition, NameMap, StorageUtil } from './types';
|
|
2
|
+
declare const utils: {
|
|
3
|
+
/**
|
|
4
|
+
* Parse second to time string
|
|
5
|
+
*/
|
|
6
|
+
secondToTime(second: number): string;
|
|
7
|
+
getElementViewLeft(element: HTMLElement): number;
|
|
8
|
+
getBoundingClientRectViewLeft(element: HTMLElement): number;
|
|
9
|
+
getScrollPosition(): ScrollPosition;
|
|
10
|
+
setScrollPosition({ left, top }: ScrollPosition): void;
|
|
11
|
+
isMobile: boolean;
|
|
12
|
+
isFirefox: boolean;
|
|
13
|
+
isChrome: boolean;
|
|
14
|
+
isSafari: boolean;
|
|
15
|
+
storage: StorageUtil;
|
|
16
|
+
nameMap: NameMap;
|
|
17
|
+
color2Number(color: string): number;
|
|
18
|
+
number2Color(number: number): string;
|
|
19
|
+
number2Type(number: number): string;
|
|
20
|
+
};
|
|
21
|
+
export default utils;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kplayer-ts",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Kenji video player - TypeScript",
|
|
5
|
-
"main": "dist/kplayer.cjs.js",
|
|
6
|
-
"module": "dist/kplayer.es.js",
|
|
7
|
-
"types": "dist/
|
|
5
|
+
"main": "dist/kplayer-ts.cjs.js",
|
|
6
|
+
"module": "dist/kplayer-ts.es.js",
|
|
7
|
+
"types": "dist/kplayer-ts.d.ts",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
"@types/node": "^25.5.0",
|
|
18
18
|
"less": "^4.6.4",
|
|
19
19
|
"typescript": "^5.9.3",
|
|
20
|
-
"vite": "^5.0.0"
|
|
20
|
+
"vite": "^5.0.0",
|
|
21
|
+
"vite-plugin-css-injected-by-js": "^4.0.1",
|
|
22
|
+
"vite-plugin-dts": "^4.5.4"
|
|
21
23
|
},
|
|
22
24
|
"keywords": [
|
|
23
25
|
"video",
|