@applemusic-like-lyrics/core 0.3.1 → 0.4.0
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 +3 -3
- package/dist/amll-core.cjs +5020 -0
- package/dist/amll-core.cjs.map +1 -0
- package/dist/amll-core.d.cts +997 -0
- package/dist/amll-core.d.mts +997 -0
- package/dist/{amll-core.js → amll-core.mjs} +87 -5786
- package/dist/amll-core.mjs.map +1 -0
- package/dist/style.css +399 -0
- package/package.json +69 -84
- package/LICENSE +0 -661
- package/dist/amll-core.css +0 -2
- package/dist/amll-core.js.map +0 -1
- package/dist/bg-render/base.d.ts +0 -109
- package/dist/bg-render/img.d.ts +0 -4
- package/dist/bg-render/index.d.ts +0 -28
- package/dist/bg-render/mesh-renderer/cp-generate.d.ts +0 -6
- package/dist/bg-render/mesh-renderer/cp-presets.d.ts +0 -22
- package/dist/bg-render/mesh-renderer/index.d.ts +0 -76
- package/dist/bg-render/pixi-renderer.d.ts +0 -22
- package/dist/canvas-test.d.ts +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/interfaces.d.ts +0 -106
- package/dist/lyric-player/base.d.ts +0 -327
- package/dist/lyric-player/bottom-line.d.ts +0 -29
- package/dist/lyric-player/canvas/index.d.ts +0 -24
- package/dist/lyric-player/canvas/lyric-line.d.ts +0 -24
- package/dist/lyric-player/canvas/text-layout.d.ts +0 -39
- package/dist/lyric-player/dom/index.d.ts +0 -59
- package/dist/lyric-player/dom/interlude-dots.d.ts +0 -22
- package/dist/lyric-player/dom/lyric-line.d.ts +0 -80
- package/dist/lyric-player/dom-slim/index.d.ts +0 -38
- package/dist/lyric-player/dom-slim/interlude-dots.d.ts +0 -22
- package/dist/lyric-player/dom-slim/lyric-line.d.ts +0 -69
- package/dist/lyric-player/index.d.ts +0 -29
- package/dist/mg-test.d.ts +0 -1
- package/dist/utils/debounce.d.ts +0 -2
- package/dist/utils/derivative.d.ts +0 -2
- package/dist/utils/eq-set.d.ts +0 -1
- package/dist/utils/flagsets.d.ts +0 -17
- package/dist/utils/is-cjk.d.ts +0 -1
- package/dist/utils/linear.d.ts +0 -21
- package/dist/utils/lyric-split-words.d.ts +0 -11
- package/dist/utils/matrix.d.ts +0 -25
- package/dist/utils/mutex.d.ts +0 -2
- package/dist/utils/optimize-lyric.d.ts +0 -9
- package/dist/utils/resource.d.ts +0 -4
- package/dist/utils/schedule.d.ts +0 -6
- package/dist/utils/spring.d.ts +0 -26
- package/dist/utils/wa-spring.d.ts +0 -27
package/dist/bg-render/base.d.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { Disposable, HasElement } from '../interfaces.ts';
|
|
2
|
-
export declare abstract class AbstractBaseRenderer implements Disposable, HasElement {
|
|
3
|
-
/**
|
|
4
|
-
* 修改背景的流动速度,数字越大越快,默认为 8
|
|
5
|
-
* @param speed 背景的流动速度,默认为 8
|
|
6
|
-
*/
|
|
7
|
-
abstract setFlowSpeed(speed: number): void;
|
|
8
|
-
/**
|
|
9
|
-
* 修改背景的渲染比例,默认是 0.5
|
|
10
|
-
*
|
|
11
|
-
* 一般情况下这个程度既没有明显瑕疵也不会特别吃性能
|
|
12
|
-
* @param scale 背景的渲染比例
|
|
13
|
-
*/
|
|
14
|
-
abstract setRenderScale(scale: number): void;
|
|
15
|
-
/**
|
|
16
|
-
* 是否启用静态模式,即图片在更换后就会保持静止状态并禁用更新,以节省性能
|
|
17
|
-
* @param enable 是否启用静态模式
|
|
18
|
-
*/
|
|
19
|
-
abstract setStaticMode(enable: boolean): void;
|
|
20
|
-
/**
|
|
21
|
-
* 修改背景动画帧率,默认是 30 FPS
|
|
22
|
-
*
|
|
23
|
-
* 如果设置成 0 则会停止动画
|
|
24
|
-
* @param fps 目标帧率,默认 30 FPS
|
|
25
|
-
*/
|
|
26
|
-
abstract setFPS(fps: number): void;
|
|
27
|
-
/**
|
|
28
|
-
* 暂停背景动画,画面即便是更新了图片也不会发生变化
|
|
29
|
-
*/
|
|
30
|
-
abstract pause(): void;
|
|
31
|
-
/**
|
|
32
|
-
* 恢复播放背景动画
|
|
33
|
-
*/
|
|
34
|
-
abstract resume(): void;
|
|
35
|
-
/**
|
|
36
|
-
* 设置背景专辑资源,纹理加载并设置完成后会返回
|
|
37
|
-
* @param albumSource 专辑的资源链接,可以是图片或视频链接,抑或是任意 img/video 元素,如果提供字符串链接且为视频则需要指定第二个参数
|
|
38
|
-
*/
|
|
39
|
-
abstract setAlbum(albumSource: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* 设置低频的音量大小,范围在 80hz-120hz 之间为宜,取值范围在 [0.0-1.0] 之间
|
|
42
|
-
*
|
|
43
|
-
* 部分渲染器会根据音量大小调整背景效果(例如根据鼓点跳动)
|
|
44
|
-
*
|
|
45
|
-
* 如果无法获取到类似的数据,请传入 1.0 作为默认值,或不做任何处理(默认值即 1.0)
|
|
46
|
-
* @param volume 低频的音量大小,范围在 50hz-120hz 之间为宜,取值范围在 [0.0-1.0] 之间
|
|
47
|
-
*/
|
|
48
|
-
abstract setLowFreqVolume(volume: number): void;
|
|
49
|
-
/**
|
|
50
|
-
* 设置背景是否根据“是否有歌词”这个特征调整自身效果,例如有歌词时会变得更加活跃
|
|
51
|
-
*
|
|
52
|
-
* 部分渲染器会根据这个特征调整自身效果
|
|
53
|
-
*
|
|
54
|
-
* 如果不确定是否需要赋值或无法知晓是否包含歌词,请传入 true 或不做任何处理(默认值为 true)
|
|
55
|
-
*
|
|
56
|
-
* @param hasLyric 是否有歌词,如不确定是否需要赋值,请传入 true 或不做任何处理(默认值为 true)
|
|
57
|
-
*/
|
|
58
|
-
abstract setHasLyric(hasLyric: boolean): void;
|
|
59
|
-
abstract dispose(): void;
|
|
60
|
-
abstract getElement(): HTMLElement;
|
|
61
|
-
}
|
|
62
|
-
export declare abstract class BaseRenderer extends AbstractBaseRenderer {
|
|
63
|
-
protected canvas: HTMLCanvasElement;
|
|
64
|
-
private observer;
|
|
65
|
-
protected flowSpeed: number;
|
|
66
|
-
protected currerntRenderScale: number;
|
|
67
|
-
constructor(canvas: HTMLCanvasElement);
|
|
68
|
-
setRenderScale(scale: number): void;
|
|
69
|
-
/**
|
|
70
|
-
* 当画板元素大小发生变化时此函数会被调用
|
|
71
|
-
* 可以在此处重设和渲染器相关的尺寸设置
|
|
72
|
-
* 考虑到初始化的时候元素不一定在文档中或出于某些特殊样式状态,尺寸长宽有可能会为 0,请注意进行特判处理
|
|
73
|
-
* @param width 画板元素实际的物理像素宽度,有可能为 0
|
|
74
|
-
* @param height 画板元素实际的物理像素高度,有可能为 0
|
|
75
|
-
*/
|
|
76
|
-
protected onResize(width: number, height: number): void;
|
|
77
|
-
/**
|
|
78
|
-
* 修改背景的流动速度,数字越大越快,默认为 1
|
|
79
|
-
* @param speed 背景的流动速度,默认为 1
|
|
80
|
-
*/
|
|
81
|
-
setFlowSpeed(speed: number): void;
|
|
82
|
-
/**
|
|
83
|
-
* 是否启用静态模式,即图片在更换后就会保持静止状态并禁用更新,以节省性能
|
|
84
|
-
* @param enable 是否启用静态模式
|
|
85
|
-
*/
|
|
86
|
-
abstract setStaticMode(enable: boolean): void;
|
|
87
|
-
/**
|
|
88
|
-
* 修改背景动画帧率,默认是 30 FPS
|
|
89
|
-
*
|
|
90
|
-
* 如果设置成 0 则会停止动画
|
|
91
|
-
* @param fps 目标帧率,默认 30 FPS
|
|
92
|
-
*/
|
|
93
|
-
abstract setFPS(fps: number): void;
|
|
94
|
-
/**
|
|
95
|
-
* 暂停背景动画,画面即便是更新了图片也不会发生变化
|
|
96
|
-
*/
|
|
97
|
-
abstract pause(): void;
|
|
98
|
-
/**
|
|
99
|
-
* 恢复播放背景动画
|
|
100
|
-
*/
|
|
101
|
-
abstract resume(): void;
|
|
102
|
-
/**
|
|
103
|
-
* 设置背景专辑资源,纹理加载并设置完成后会返回
|
|
104
|
-
* @param albumSource 专辑的资源链接,可以是图片或视频链接,抑或是任意 img/video 元素,如果提供字符串链接且为视频则需要指定第二个参数
|
|
105
|
-
*/
|
|
106
|
-
abstract setAlbum(albumSource: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
107
|
-
dispose(): void;
|
|
108
|
-
getElement(): HTMLElement;
|
|
109
|
-
}
|
package/dist/bg-render/img.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare function blurImage(imageData: ImageData, radius: number, quality: number): void;
|
|
2
|
-
export declare function saturateImage(imageData: ImageData, saturation: number): void;
|
|
3
|
-
export declare function brightnessImage(imageData: ImageData, brightness: number): void;
|
|
4
|
-
export declare function contrastImage(imageData: ImageData, contrast: number): void;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { AbstractBaseRenderer, BaseRenderer } from './base.ts';
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview
|
|
4
|
-
* 一个播放歌词的组件
|
|
5
|
-
* @author SteveXMH
|
|
6
|
-
*/
|
|
7
|
-
export { AbstractBaseRenderer, BaseRenderer } from './base.ts';
|
|
8
|
-
export { MeshGradientRenderer } from './mesh-renderer/index.ts';
|
|
9
|
-
export { PixiRenderer } from './pixi-renderer.ts';
|
|
10
|
-
export declare class BackgroundRender<Renderer extends BaseRenderer> implements AbstractBaseRenderer {
|
|
11
|
-
private element;
|
|
12
|
-
private renderer;
|
|
13
|
-
constructor(renderer: Renderer, canvas: HTMLCanvasElement);
|
|
14
|
-
static new<Renderer extends BaseRenderer>(type: {
|
|
15
|
-
new (canvas: HTMLCanvasElement): Renderer;
|
|
16
|
-
}): BackgroundRender<Renderer>;
|
|
17
|
-
setRenderScale(scale: number): void;
|
|
18
|
-
setFlowSpeed(speed: number): void;
|
|
19
|
-
setStaticMode(enable: boolean): void;
|
|
20
|
-
setFPS(fps: number): void;
|
|
21
|
-
pause(): void;
|
|
22
|
-
resume(): void;
|
|
23
|
-
setLowFreqVolume(volume: number): void;
|
|
24
|
-
setHasLyric(hasLyric: boolean): void;
|
|
25
|
-
setAlbum(albumSource: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
26
|
-
getElement(): HTMLCanvasElement;
|
|
27
|
-
dispose(): void;
|
|
28
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ControlPointPreset } from './cp-presets.ts';
|
|
2
|
-
export declare function generateControlPoints(width: number, height: number, variationFraction?: number, // = 0.2,
|
|
3
|
-
normalOffset?: number, // = 0.3,
|
|
4
|
-
blendFactor?: number, smoothIters?: number, // = 3,
|
|
5
|
-
smoothFactor?: number, // = 0.3,
|
|
6
|
-
smoothModifier?: number): ControlPointPreset;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export interface ControlPointConf {
|
|
3
|
-
cx: number;
|
|
4
|
-
cy: number;
|
|
5
|
-
x: number;
|
|
6
|
-
y: number;
|
|
7
|
-
ur: number;
|
|
8
|
-
vr: number;
|
|
9
|
-
up: number;
|
|
10
|
-
vp: number;
|
|
11
|
-
}
|
|
12
|
-
/** @internal */
|
|
13
|
-
export interface ControlPointPreset {
|
|
14
|
-
width: number;
|
|
15
|
-
height: number;
|
|
16
|
-
conf: ControlPointConf[];
|
|
17
|
-
}
|
|
18
|
-
/** @internal */
|
|
19
|
-
export declare const p: (cx: number, cy: number, x: number, y: number, ur?: number, vr?: number, up?: number, vp?: number) => ControlPointConf;
|
|
20
|
-
/** @internal */
|
|
21
|
-
export declare const preset: (width: number, height: number, conf: ControlPointConf[]) => ControlPointPreset;
|
|
22
|
-
export declare const CONTROL_POINT_PRESETS: readonly [ControlPointPreset, ControlPointPreset, ControlPointPreset, ControlPointPreset, ControlPointPreset, ControlPointPreset];
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Vec2, Vec3 } from 'gl-matrix';
|
|
2
|
-
import { BaseRenderer } from '../base.ts';
|
|
3
|
-
declare class ControlPoint {
|
|
4
|
-
color: Vec3;
|
|
5
|
-
location: Vec2;
|
|
6
|
-
uTangent: Vec2;
|
|
7
|
-
vTangent: Vec2;
|
|
8
|
-
private _uRot;
|
|
9
|
-
private _vRot;
|
|
10
|
-
private _uScale;
|
|
11
|
-
private _vScale;
|
|
12
|
-
constructor();
|
|
13
|
-
get uRot(): number;
|
|
14
|
-
get vRot(): number;
|
|
15
|
-
set uRot(value: number);
|
|
16
|
-
set vRot(value: number);
|
|
17
|
-
get uScale(): number;
|
|
18
|
-
get vScale(): number;
|
|
19
|
-
set uScale(value: number);
|
|
20
|
-
set vScale(value: number);
|
|
21
|
-
private updateUTangent;
|
|
22
|
-
private updateVTangent;
|
|
23
|
-
}
|
|
24
|
-
export declare class MeshGradientRenderer extends BaseRenderer {
|
|
25
|
-
private gl;
|
|
26
|
-
private lastFrameTime;
|
|
27
|
-
private frameTime;
|
|
28
|
-
private lastTickTime;
|
|
29
|
-
private smoothedVolume;
|
|
30
|
-
private volume;
|
|
31
|
-
private tickHandle;
|
|
32
|
-
private maxFPS;
|
|
33
|
-
private paused;
|
|
34
|
-
private staticMode;
|
|
35
|
-
private mainProgram;
|
|
36
|
-
private quadProgram;
|
|
37
|
-
private quadBuffer;
|
|
38
|
-
private fbo;
|
|
39
|
-
private fboTexture;
|
|
40
|
-
private manualControl;
|
|
41
|
-
private reduceImageSizeCanvas;
|
|
42
|
-
private targetSize;
|
|
43
|
-
private currentSize;
|
|
44
|
-
private isNoCover;
|
|
45
|
-
private meshStates;
|
|
46
|
-
private _disposed;
|
|
47
|
-
private frameCount;
|
|
48
|
-
private lastFPSUpdate;
|
|
49
|
-
private currentFPS;
|
|
50
|
-
private enablePerformanceMonitoring;
|
|
51
|
-
setManualControl(enable: boolean): void;
|
|
52
|
-
setWireFrame(enable: boolean): void;
|
|
53
|
-
getControlPoint(x: number, y: number): ControlPoint | undefined;
|
|
54
|
-
resizeControlPoints(width: number, height: number): void;
|
|
55
|
-
resetSubdivition(subDivisions: number): void;
|
|
56
|
-
private onTick;
|
|
57
|
-
private checkIfResize;
|
|
58
|
-
private updateFBO;
|
|
59
|
-
private onRedraw;
|
|
60
|
-
private onTickBinded;
|
|
61
|
-
private requestTick;
|
|
62
|
-
constructor(canvas: HTMLCanvasElement);
|
|
63
|
-
protected onResize(width: number, height: number): void;
|
|
64
|
-
setStaticMode(enable: boolean): void;
|
|
65
|
-
setFPS(fps: number): void;
|
|
66
|
-
pause(): void;
|
|
67
|
-
resume(): void;
|
|
68
|
-
setAlbum(albumSource?: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
69
|
-
setLowFreqVolume(volume: number): void;
|
|
70
|
-
setHasLyric(_hasLyric: boolean): void;
|
|
71
|
-
dispose(): void;
|
|
72
|
-
enablePerformanceMonitor(enable: boolean): void;
|
|
73
|
-
getCurrentFPS(): number;
|
|
74
|
-
private updatePerformanceStats;
|
|
75
|
-
}
|
|
76
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { BaseRenderer } from './base';
|
|
2
|
-
export declare class PixiRenderer extends BaseRenderer {
|
|
3
|
-
protected canvas: HTMLCanvasElement;
|
|
4
|
-
private app;
|
|
5
|
-
private curContainer?;
|
|
6
|
-
private staticMode;
|
|
7
|
-
private lastContainer;
|
|
8
|
-
private onTick;
|
|
9
|
-
constructor(canvas: HTMLCanvasElement);
|
|
10
|
-
protected onResize(width: number, height: number): void;
|
|
11
|
-
setRenderScale(scale: number): void;
|
|
12
|
-
private rebuildFilters;
|
|
13
|
-
setStaticMode(enable?: boolean): void;
|
|
14
|
-
setFPS(fps: number): void;
|
|
15
|
-
pause(): void;
|
|
16
|
-
resume(): void;
|
|
17
|
-
setLowFreqVolume(_volume: number): void;
|
|
18
|
-
setHasLyric(_hasLyric: boolean): void;
|
|
19
|
-
setAlbum(albumSource?: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
20
|
-
dispose(): void;
|
|
21
|
-
getElement(): HTMLElement;
|
|
22
|
-
}
|
package/dist/canvas-test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/index.d.ts
DELETED
package/dist/interfaces.d.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 拥有一个 HTML 元素的接口
|
|
3
|
-
*
|
|
4
|
-
* 可以通过 `getElement` 获取这个类所对应的 HTML 元素实例
|
|
5
|
-
*/
|
|
6
|
-
export interface HasElement {
|
|
7
|
-
/** 获取这个类所对应的 HTML 元素实例 */
|
|
8
|
-
getElement(): HTMLElement;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* 实现了这个接口的东西需要在使用完毕后
|
|
12
|
-
*
|
|
13
|
-
* 手动调用 `dispose` 函数来销毁清除占用资源
|
|
14
|
-
*
|
|
15
|
-
* 以免产生泄露
|
|
16
|
-
*/
|
|
17
|
-
export interface Disposable {
|
|
18
|
-
/**
|
|
19
|
-
* 销毁实现了该接口的对象实例,释放占用的资源
|
|
20
|
-
*
|
|
21
|
-
* 一般情况下,调用本函数后就不可以再调用对象的任何函数了
|
|
22
|
-
*/
|
|
23
|
-
dispose(): void;
|
|
24
|
-
}
|
|
25
|
-
/** 一个歌词单词 */
|
|
26
|
-
export interface LyricWordBase {
|
|
27
|
-
/** 单词的起始时间,单位为毫秒 */
|
|
28
|
-
startTime: number;
|
|
29
|
-
/** 单词的结束时间,单位为毫秒 */
|
|
30
|
-
endTime: number;
|
|
31
|
-
/** 单词内容 */
|
|
32
|
-
word: string;
|
|
33
|
-
}
|
|
34
|
-
export interface LyricWord extends LyricWordBase {
|
|
35
|
-
/** 单词的音译内容 */
|
|
36
|
-
romanWord?: string;
|
|
37
|
-
/** 单词内容是否包含冒犯性的不雅用语 */
|
|
38
|
-
obscene?: boolean;
|
|
39
|
-
/** 单词的注音内容 */
|
|
40
|
-
ruby?: LyricWordBase[];
|
|
41
|
-
}
|
|
42
|
-
/** 一行歌词,存储多个单词 */
|
|
43
|
-
export interface LyricLine {
|
|
44
|
-
/**
|
|
45
|
-
* 该行的所有单词
|
|
46
|
-
* 如果是 LyRiC 等只能表达一行歌词的格式,这里就只会有一个单词且通常其始末时间和本结构的 `startTime` 和 `endTime` 相同
|
|
47
|
-
*/
|
|
48
|
-
words: LyricWord[];
|
|
49
|
-
/** 该行的翻译歌词,将会显示在主歌词行的下方 */
|
|
50
|
-
translatedLyric: string;
|
|
51
|
-
/** 该行的音译歌词,将会显示在翻译歌词行的下方 */
|
|
52
|
-
romanLyric: string;
|
|
53
|
-
/** 句子的起始时间,单位为毫秒 */
|
|
54
|
-
startTime: number;
|
|
55
|
-
/** 句子的结束时间,单位为毫秒 */
|
|
56
|
-
endTime: number;
|
|
57
|
-
/** 该行是否为背景歌词行,当该行歌词的上一句非背景歌词被激活时,这行歌词将会显示出来,注意每个非背景歌词下方只能拥有一个背景歌词 */
|
|
58
|
-
isBG: boolean;
|
|
59
|
-
/** 该行是否为对唱歌词行(即歌词行靠右对齐) */
|
|
60
|
-
isDuet: boolean;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* 优化歌词行的配置选项
|
|
64
|
-
*/
|
|
65
|
-
export interface OptimizeLyricOptions {
|
|
66
|
-
/**
|
|
67
|
-
* 规范化歌词中的空格
|
|
68
|
-
*
|
|
69
|
-
* 将多个连续空格替换为一个空格
|
|
70
|
-
* @default true
|
|
71
|
-
*/
|
|
72
|
-
normalizeSpaces?: boolean;
|
|
73
|
-
/**
|
|
74
|
-
* 是否将行级时间戳强行设为字级时间戳
|
|
75
|
-
* @default true
|
|
76
|
-
*/
|
|
77
|
-
resetLineTimestamps?: boolean;
|
|
78
|
-
/**
|
|
79
|
-
* 把多行背景人声转换为单行背景人声 + 主歌词行的形式
|
|
80
|
-
* @default true
|
|
81
|
-
*/
|
|
82
|
-
convertExcessiveBackgroundLines?: boolean;
|
|
83
|
-
/**
|
|
84
|
-
* 是否同步主歌词与背景人声的时间
|
|
85
|
-
* @default true
|
|
86
|
-
*/
|
|
87
|
-
syncMainAndBackgroundLines?: boolean;
|
|
88
|
-
/**
|
|
89
|
-
* 清洗非刻意的重叠,以免不必要的多行高亮效果
|
|
90
|
-
*
|
|
91
|
-
* 如果两行时间轴有重叠的歌词同时满足下列条件:
|
|
92
|
-
* * 重叠小于 100ms
|
|
93
|
-
* * 重叠时长不足下一行时长的 10%
|
|
94
|
-
*
|
|
95
|
-
* 则截断上一行歌词的结束时间为下一行歌词的开始时间
|
|
96
|
-
* @default true
|
|
97
|
-
*/
|
|
98
|
-
cleanUnintentionalOverlaps?: boolean;
|
|
99
|
-
/**
|
|
100
|
-
* 尝试让歌词提前最多 1 秒开始
|
|
101
|
-
*
|
|
102
|
-
* 有重叠则尝试最多提前 400ms 或上一行时长的 30%
|
|
103
|
-
* @default true
|
|
104
|
-
*/
|
|
105
|
-
tryAdvanceStartTime?: boolean;
|
|
106
|
-
}
|