@applemusic-like-lyrics/core 0.0.10 → 0.0.11

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.
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import type { Disposable, HasElement, LyricLine } from "../interfaces";
7
7
  import { SpringParams } from "../utils/spring";
8
+ export declare class LyricLineClickedEvent extends MouseEvent {
9
+ }
8
10
  /**
9
11
  * 歌词播放组件,本框架的核心组件
10
12
  *
@@ -20,6 +22,11 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
20
22
  private hotLines;
21
23
  private bufferedLines;
22
24
  private scrollToIndex;
25
+ private allowScroll;
26
+ private scrolledHandler;
27
+ private isScrolled;
28
+ private invokedByScrollEvent;
29
+ private scrollOffset;
23
30
  private resizeObserver;
24
31
  private posXSpringParams;
25
32
  private posYSpringParams;
@@ -27,12 +34,17 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
27
34
  private enableBlur;
28
35
  private interludeDots;
29
36
  private interludeDotsSize;
37
+ private bottomLine;
30
38
  readonly supportPlusLighter: boolean;
31
39
  readonly supportMaskImage: boolean;
32
40
  private disableSpring;
33
41
  private alignAnchor;
42
+ private alignPosition;
43
+ private isNonDynamic;
34
44
  readonly size: [number, number];
45
+ readonly innerSize: [number, number];
35
46
  readonly pos: [number, number];
47
+ _getIsNonDynamic(): boolean;
36
48
  /**
37
49
  * 设置是否使用物理弹簧算法实现歌词动画效果,默认启用
38
50
  *
@@ -55,9 +67,9 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
55
67
  * 否则返回 undefined
56
68
  *
57
69
  * 这个只允许内部调用
58
- * @returns [开始时间,结束时间] 或 undefined 如果不处于间奏区间
70
+ * @returns [开始时间,结束时间,大概处于的歌词行ID,下一句是否为对唱歌词] 或 undefined 如果不处于间奏区间
59
71
  */
60
- getCurrentInterlude(): [number, number, number] | undefined;
72
+ getCurrentInterlude(): [number, number, number, boolean] | undefined;
61
73
  /**
62
74
  * 重建样式
63
75
  *
@@ -78,6 +90,8 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
78
90
  * 重新布局定位歌词行的位置,调用完成后再逐帧调用 `update`
79
91
  * 函数即可让歌词通过动画移动到目标位置。
80
92
  *
93
+ * 函数有一个 `force` 参数,用于指定是否强制修改布局,也就是不经过动画直接调整元素位置和大小。
94
+ *
81
95
  * 此函数还有一个 `reflow` 参数,用于指定是否需要重新计算布局
82
96
  *
83
97
  * 因为计算布局必定会导致浏览器重排布局,所以会大幅度影响流畅度和性能,故请只在以下情况下将其​设置为 true:
@@ -86,9 +100,10 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
86
100
  * 2. 加载了新的歌词时(不论前后歌词是否完全一样)
87
101
  * 3. 用户自行跳转了歌曲播放位置(不论距离远近)
88
102
  *
103
+ * @param force 是否不经过动画直接修改布局定位
89
104
  * @param reflow 是否进行重新布局(重新计算每行歌词大小)
90
105
  */
91
- calcLayout(reflow?: boolean): void;
106
+ calcLayout(force?: boolean, reflow?: boolean): void;
92
107
  /**
93
108
  * 获取当前歌词的播放位置
94
109
  *
@@ -105,14 +120,29 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
105
120
  getLyricLines(): LyricLine[];
106
121
  getElement(): HTMLElement;
107
122
  /**
108
- * 设置歌词行的对齐方式,默认为 `top`
123
+ * 获取一个特殊的底栏元素,默认是空白的,可以往内部添加任意元素
124
+ *
125
+ * 这个元素始终在歌词的底部,可以用于显示歌曲创作者等信息
109
126
  *
110
- * - 设置成 `top` 的话歌词将会向组件顶部对齐
111
- * - 设置成 `bottom` 的话歌词将会向组件底部对齐
112
- * - 设置成 [0.0-1.0] 之间任意数字的话则会根据当前组件高度从顶部向下位移为对齐位置垂直居中对齐
127
+ * 但是请勿删除该元素,只能在内部存放元素
128
+ *
129
+ * @returns 一个元素,可以往内部添加任意元素
130
+ */
131
+ getBottomLineElement(): HTMLElement;
132
+ /**
133
+ * 设置目标歌词行的对齐方式,默认为 `center`
134
+ *
135
+ * - 设置成 `top` 的话将会向目标歌词行的顶部对齐
136
+ * - 设置成 `bottom` 的话将会向目标歌词行的底部对齐
137
+ * - 设置成 `center` 的话将会向目标歌词行的垂直中心对齐
113
138
  * @param alignAnchor 歌词行对齐方式,详情见函数说明
114
139
  */
115
- setAlignAnchor(alignAnchor: "top" | "bottom" | number): void;
140
+ setAlignAnchor(alignAnchor: "top" | "bottom" | "center"): void;
141
+ /**
142
+ * 设置默认的歌词行对齐位置,相对于整个歌词播放组件的大小位置,默认为 `0.5`
143
+ * @param alignPosition 一个 `[0.0-1.0]` 之间的任意数字,代表组件高度由上到下的比例位置
144
+ */
145
+ setAlignPosition(alignPosition: number): void;
116
146
  /**
117
147
  * 设置当前播放进度,单位为毫秒且**必须是整数**,此时将会更新内部的歌词进度信息
118
148
  * 内部会根据调用间隔和播放进度自动决定如何滚动和显示歌词,所以这个的调用频率越快越准确越好
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@applemusic-like-lyrics/core",
3
3
  "packageManager": "yarn@3.6.1",
4
- "version": "0.0.10",
4
+ "version": "0.0.11",
5
5
  "description": "AMLL 的纯 JS 核心组件框架,包括歌词显示组件和背景组件等其它可以复用的组件",
6
6
  "repository": {
7
7
  "url": "https://github.com/Steve-xmh/applemusic-like-lyrics.git",
@@ -23,6 +23,7 @@
23
23
  "typings": "./dist/index.d.ts",
24
24
  "exports": {
25
25
  ".": {
26
+ "types": "./dist/index.d.ts",
26
27
  "import": "./dist/amll-core.mjs",
27
28
  "require": "./dist/amll-core.cjs"
28
29
  }
@@ -35,6 +36,7 @@
35
36
  "stats.js": "^0.17.0",
36
37
  "typedoc": "^0.24.8",
37
38
  "typedoc-plugin-markdown": "^3.15.3",
39
+ "typescript": "^5.1.6",
38
40
  "vite": "^4.4.7",
39
41
  "vite-plugin-dts": "^3.3.1",
40
42
  "vite-plugin-top-level-await": "^1.3.1",