@applemusic-like-lyrics/react-full 0.2.1 → 0.3.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.
Files changed (64) hide show
  1. package/dist/amll-react-framework.cjs +3976 -0
  2. package/dist/amll-react-framework.cjs.map +1 -0
  3. package/dist/amll-react-framework.d.cts +604 -0
  4. package/dist/amll-react-framework.d.mts +564 -0
  5. package/dist/amll-react-framework.mjs +3866 -0
  6. package/dist/amll-react-framework.mjs.map +1 -0
  7. package/dist/style.css +901 -0
  8. package/package.json +76 -89
  9. package/LICENSE +0 -661
  10. package/dist/amll-react-framework.css +0 -1023
  11. package/dist/amll-react-framework.js +0 -13755
  12. package/dist/amll-react-framework.js.map +0 -1
  13. package/dist/components/AudioFFTVisualizer/index.d.ts +0 -5
  14. package/dist/components/AudioFFTVisualizer/index.d.ts.map +0 -1
  15. package/dist/components/AudioQualityTag/index.d.ts +0 -7
  16. package/dist/components/AudioQualityTag/index.d.ts.map +0 -1
  17. package/dist/components/BouncingSlider/index.d.ts +0 -18
  18. package/dist/components/BouncingSlider/index.d.ts.map +0 -1
  19. package/dist/components/ControlThumb/index.d.ts +0 -5
  20. package/dist/components/ControlThumb/index.d.ts.map +0 -1
  21. package/dist/components/Cover/index.d.ts +0 -12
  22. package/dist/components/Cover/index.d.ts.map +0 -1
  23. package/dist/components/MediaButton/index.d.ts +0 -3
  24. package/dist/components/MediaButton/index.d.ts.map +0 -1
  25. package/dist/components/MenuButton/index.d.ts +0 -3
  26. package/dist/components/MenuButton/index.d.ts.map +0 -1
  27. package/dist/components/MusicInfo/index.d.ts +0 -10
  28. package/dist/components/MusicInfo/index.d.ts.map +0 -1
  29. package/dist/components/PrebuiltLyricPlayer/index.d.ts +0 -8
  30. package/dist/components/PrebuiltLyricPlayer/index.d.ts.map +0 -1
  31. package/dist/components/TextMarquee/index.d.ts +0 -3
  32. package/dist/components/TextMarquee/index.d.ts.map +0 -1
  33. package/dist/components/ToggleIconButton/index.d.ts +0 -12
  34. package/dist/components/ToggleIconButton/index.d.ts.map +0 -1
  35. package/dist/components/ToggleIconButton/prebuilt-enum.d.ts +0 -9
  36. package/dist/components/ToggleIconButton/prebuilt-enum.d.ts.map +0 -1
  37. package/dist/components/VolumeControlSlider/index.d.ts +0 -4
  38. package/dist/components/VolumeControlSlider/index.d.ts.map +0 -1
  39. package/dist/components/index.d.ts +0 -14
  40. package/dist/components/index.d.ts.map +0 -1
  41. package/dist/hook/useThrottle.d.ts +0 -11
  42. package/dist/hook/useThrottle.d.ts.map +0 -1
  43. package/dist/index.d.ts +0 -8
  44. package/dist/index.d.ts.map +0 -1
  45. package/dist/layout/auto.d.ts +0 -19
  46. package/dist/layout/auto.d.ts.map +0 -1
  47. package/dist/layout/horizontal.d.ts +0 -12
  48. package/dist/layout/horizontal.d.ts.map +0 -1
  49. package/dist/layout/index.d.ts +0 -4
  50. package/dist/layout/index.d.ts.map +0 -1
  51. package/dist/layout/vertical.d.ts +0 -12
  52. package/dist/layout/vertical.d.ts.map +0 -1
  53. package/dist/states/callbacks.d.ts +0 -93
  54. package/dist/states/callbacks.d.ts.map +0 -1
  55. package/dist/states/configAtoms.d.ts +0 -174
  56. package/dist/states/configAtoms.d.ts.map +0 -1
  57. package/dist/states/controlsAtoms.d.ts +0 -24
  58. package/dist/states/controlsAtoms.d.ts.map +0 -1
  59. package/dist/states/dataAtoms.d.ts +0 -144
  60. package/dist/states/dataAtoms.d.ts.map +0 -1
  61. package/dist/utils/duration.d.ts +0 -2
  62. package/dist/utils/duration.d.ts.map +0 -1
  63. package/dist/utils/index.d.ts +0 -2
  64. package/dist/utils/index.d.ts.map +0 -1
@@ -0,0 +1,604 @@
1
+ import React$1, { ComponentProps, FC, ForwardRefExoticComponent, HTMLProps, NamedExoticComponent, PropsWithChildren, ReactNode, RefAttributes } from "react";
2
+ import { LyricLine, LyricLineMouseEvent, LyricPlayerBase, OptimizeLyricOptions } from "@applemusic-like-lyrics/core";
3
+ import { BackgroundRenderProps, LyricPlayerRef } from "@applemusic-like-lyrics/react";
4
+ import { PrimitiveAtom, WritableAtom } from "jotai";
5
+ import { RESET } from "jotai/utils";
6
+
7
+ //#region src/components/AudioFFTVisualizer/index.d.ts
8
+ declare const AudioFFTVisualizer: FC<{
9
+ fftData: number[];
10
+ } & HTMLProps<HTMLCanvasElement>>;
11
+ //#endregion
12
+ //#region src/components/AudioQualityTag/index.d.ts
13
+ type AudioQualityTagProps = {
14
+ isDolbyAtmos?: boolean;
15
+ tagText?: string;
16
+ tagIcon?: boolean;
17
+ } & HTMLProps<HTMLDivElement>;
18
+ declare const AudioQualityTag: NamedExoticComponent<Omit<AudioQualityTagProps, "ref"> & RefAttributes<HTMLDivElement>>;
19
+ //#endregion
20
+ //#region src/components/BouncingSlider/index.d.ts
21
+ interface SliderProps {
22
+ className?: string;
23
+ style?: React$1.CSSProperties;
24
+ value: number;
25
+ min: number;
26
+ max: number;
27
+ isPlaying?: boolean;
28
+ onChange?: (v: number) => void;
29
+ onAfterChange?: (v: number) => void;
30
+ onBeforeChange?: () => void;
31
+ onSeeking?: (v: boolean) => void;
32
+ beforeIcon?: React$1.ReactNode;
33
+ afterIcon?: React$1.ReactNode;
34
+ changeOnDrag?: boolean;
35
+ }
36
+ declare const BouncingSlider: React$1.FC<SliderProps>;
37
+ //#endregion
38
+ //#region src/components/ControlThumb/index.d.ts
39
+ declare const ControlThumb: FC<{
40
+ onClick?: () => void;
41
+ } & HTMLProps<HTMLDivElement>>;
42
+ //#endregion
43
+ //#region src/components/Cover/index.d.ts
44
+ type CoverProps = {
45
+ coverUrl?: string;
46
+ coverIsVideo?: boolean;
47
+ coverVideoPaused?: boolean;
48
+ musicPaused?: boolean;
49
+ pauseShrinkAspect?: number;
50
+ } & HTMLProps<HTMLDivElement>;
51
+ /**
52
+ * 一个专辑图组件
53
+ */
54
+ declare const Cover: ForwardRefExoticComponent<CoverProps & RefAttributes<HTMLDivElement>>;
55
+ //#endregion
56
+ //#region src/components/MediaButton/index.d.ts
57
+ declare const MediaButton: FC<ComponentProps<"button">>;
58
+ //#endregion
59
+ //#region src/components/MenuButton/index.d.ts
60
+ declare const MenuButton: React.FC<HTMLProps<HTMLButtonElement>>;
61
+ //#endregion
62
+ //#region src/components/MusicInfo/index.d.ts
63
+ declare const MusicInfo: React.FC<{
64
+ name?: string;
65
+ artists?: string[];
66
+ album?: string;
67
+ onArtistClicked?: (artist: string, index: number) => void;
68
+ onAlbumClicked?: () => void;
69
+ onMenuButtonClicked?: () => void;
70
+ } & HTMLProps<HTMLDivElement>>;
71
+ //#endregion
72
+ //#region src/components/PrebuiltLyricPlayer/index.d.ts
73
+ interface PrebuiltLyricPlayerProps extends HTMLProps<HTMLDivElement> {
74
+ bottomLineSlot?: React$1.ReactNode;
75
+ optimizeOptions?: OptimizeLyricOptions;
76
+ }
77
+ /**
78
+ * 已经部署好所有组件的歌词播放器组件,在正确设置所有的 Jotai 状态后可以开箱即用
79
+ */
80
+ declare const PrebuiltLyricPlayer: FC<PrebuiltLyricPlayerProps>;
81
+ //#endregion
82
+ //#region src/components/TextMarquee/index.d.ts
83
+ declare const TextMarquee: FC<PropsWithChildren<HTMLProps<HTMLDivElement>>>;
84
+ //#endregion
85
+ //#region src/components/ToggleIconButton/prebuilt-enum.d.ts
86
+ declare enum PrebuiltToggleIconButtonType {
87
+ Lyrics = "lyrics",
88
+ Playlist = "playlist",
89
+ Repeat = "repeat",
90
+ Shuffle = "shuffle",
91
+ Star = "star",
92
+ AirPlay = "airplay"
93
+ }
94
+ //#endregion
95
+ //#region src/components/ToggleIconButton/index.d.ts
96
+ declare const ToggleIconButton: FC<{
97
+ uncheckedIcon: ReactNode;
98
+ checkedIcon: ReactNode;
99
+ checked?: boolean;
100
+ } & Omit<HTMLProps<HTMLButtonElement>, "type">>;
101
+ declare const PrebuiltToggleIconButton: FC<{
102
+ type: PrebuiltToggleIconButtonType;
103
+ checked?: boolean;
104
+ } & Omit<HTMLProps<HTMLButtonElement>, "type">>;
105
+ //#endregion
106
+ //#region src/components/VolumeControlSlider/index.d.ts
107
+ declare const VolumeControl: React$1.FC<SliderProps>;
108
+ //#endregion
109
+ //#region src/layout/auto.d.ts
110
+ /**
111
+ * 会根据当前元素的宽高比自动选择横向或者纵向布局的组件
112
+ */
113
+ declare const AutoLyricLayout: React$1.FC<{
114
+ thumbSlot?: React$1.ReactNode;
115
+ controlsSlot?: React$1.ReactNode;
116
+ horizontalBottomControls?: React$1.ReactNode;
117
+ smallControlsSlot?: React$1.ReactNode;
118
+ bigControlsSlot?: React$1.ReactNode;
119
+ coverSlot?: React$1.ReactNode;
120
+ lyricSlot?: React$1.ReactNode;
121
+ backgroundSlot?: React$1.ReactNode;
122
+ hideLyric?: boolean;
123
+ verticalImmerseCover?: boolean;
124
+ onLayoutChange?: (isVertical: boolean) => void;
125
+ onElementMounted?: (node: HTMLDivElement | null) => void;
126
+ } & HTMLProps<HTMLDivElement>>;
127
+ //#endregion
128
+ //#region src/layout/horizontal.d.ts
129
+ declare const HorizontalLayout: React$1.FC<{
130
+ thumbSlot?: React$1.ReactNode;
131
+ coverSlot?: React$1.ReactNode;
132
+ controlsSlot?: React$1.ReactNode;
133
+ lyricSlot?: React$1.ReactNode;
134
+ backgroundSlot?: React$1.ReactNode;
135
+ bottomControls?: React$1.ReactNode;
136
+ hideLyric?: boolean;
137
+ asChild?: boolean;
138
+ } & HTMLProps<HTMLDivElement>>;
139
+ //#endregion
140
+ //#region src/layout/vertical.d.ts
141
+ declare const VerticalLayout: React$1.FC<{
142
+ thumbSlot?: React$1.ReactNode;
143
+ smallControlsSlot?: React$1.ReactNode;
144
+ bigControlsSlot?: React$1.ReactNode;
145
+ coverSlot?: React$1.ReactNode;
146
+ lyricSlot?: React$1.ReactNode;
147
+ asChild?: boolean;
148
+ hideLyric?: boolean;
149
+ immerseCover?: boolean;
150
+ } & HTMLProps<HTMLDivElement>>;
151
+ //#endregion
152
+ //#region src/states/callbacks.d.ts
153
+ interface Callback<Args extends unknown[], Result = void> {
154
+ onEmit?: (...args: Args) => Result;
155
+ }
156
+ /**
157
+ * 点击歌曲专辑图上方的控制横条时触发
158
+ *
159
+ * 通常用于关闭歌词页面
160
+ */
161
+ declare const onClickControlThumbAtom: PrimitiveAtom<Callback<[], void>>;
162
+ /**
163
+ * 点击音质标签时触发
164
+ *
165
+ * 通常用于打开音质详情对话框
166
+ */
167
+ declare const onClickAudioQualityTagAtom: PrimitiveAtom<Callback<[], void>>;
168
+ /**
169
+ * 点击菜单按钮时触发
170
+ */
171
+ declare const onRequestOpenMenuAtom: PrimitiveAtom<Callback<[], void>>;
172
+ /**
173
+ * 点击暂停或播放按钮时触发
174
+ */
175
+ declare const onPlayOrResumeAtom: PrimitiveAtom<Callback<[], void>>;
176
+ /**
177
+ * 点击上一首按钮时触发
178
+ */
179
+ declare const onRequestPrevSongAtom: PrimitiveAtom<Callback<[], void>>;
180
+ /**
181
+ * 点击下一首按钮时触发
182
+ */
183
+ declare const onRequestNextSongAtom: PrimitiveAtom<Callback<[], void>>;
184
+ /**
185
+ * 拖动进度条触发跳转时触发
186
+ * @param position - 目标播放位置,单位为毫秒
187
+ */
188
+ declare const onSeekPositionAtom: PrimitiveAtom<Callback<[_position: number], void>>;
189
+ /**
190
+ * 当某个歌词行被左键点击时触发
191
+ * @param _evt 歌词行的事件对象,可以访问到对应的歌词行信息和歌词行索引
192
+ * @param _playerRef 歌词播放组件的引用
193
+ */
194
+ declare const onLyricLineClickAtom: PrimitiveAtom<Callback<[_evt: LyricLineMouseEvent, _playerRef: LyricPlayerRef | null], void>>;
195
+ /**
196
+ * 当某个歌词行被右键点击时触发
197
+ * @param _evt 歌词行的事件对象,可以访问到对应的歌词行信息和歌词行索引
198
+ * @param _playerRef 歌词播放组件的引用
199
+ */
200
+ declare const onLyricLineContextMenuAtom: PrimitiveAtom<Callback<[_evt: LyricLineMouseEvent, _playerRef: LyricPlayerRef | null], void>>;
201
+ /**
202
+ * 通过音量滑块改变音量时触发
203
+ * @param volume - 目标音量,取值范围为 [0-1]
204
+ */
205
+ declare const onChangeVolumeAtom: PrimitiveAtom<Callback<[_volume: number], void>>;
206
+ /**
207
+ * 点击随机按钮时触发
208
+ */
209
+ declare const onToggleShuffleAtom: PrimitiveAtom<Callback<[], void>>;
210
+ /**
211
+ * 点击循环按钮时触发
212
+ */
213
+ declare const onCycleRepeatModeAtom: PrimitiveAtom<Callback<[], void>>;
214
+ //#endregion
215
+ //#region src/states/configAtoms.d.ts
216
+ /**
217
+ * 播放器底部控制区域的控制组件类型
218
+ * - `Controls`: 播放控制按钮
219
+ * - `FFT`: 音频可视化内容
220
+ * - `None`: 不显示任何内容
221
+ */
222
+ declare enum PlayerControlsType {
223
+ Controls = "controls",
224
+ FFT = "fft",
225
+ None = "none"
226
+ }
227
+ /**
228
+ * 在隐藏歌词的情况下专辑图的布局方式:
229
+ * - `Auto`: 根据专辑图是否为视频以使用沉浸布局
230
+ * - `ForceNormal`: 强制使用默认的专辑图布局
231
+ * - `ForceImmersive`: 强制使用沉浸式的专辑图布局
232
+ */
233
+ declare enum VerticalCoverLayout {
234
+ Auto = "auto",
235
+ ForceNormal = "force-normal",
236
+ ForceImmersive = "force-immersive"
237
+ }
238
+ /**
239
+ * 可用的歌词渲染器实现
240
+ */
241
+ declare enum LyricPlayerImplementation {
242
+ Dom = "dom",
243
+ DomSlim = "dom-slim"
244
+ }
245
+ /**
246
+ * 可用的预设歌词字体大小
247
+ */
248
+ declare enum LyricSizePreset {
249
+ Tiny = "tiny",
250
+ ExtraSmall = "extra-small",
251
+ Small = "small",
252
+ Medium = "medium",
253
+ Large = "large",
254
+ ExtraLarge = "extra-large",
255
+ Huge = "huge"
256
+ }
257
+ type LyricPlayerImplementationObject = {
258
+ lyricPlayer?: {
259
+ new (...args: ConstructorParameters<typeof LyricPlayerBase>): LyricPlayerBase;
260
+ };
261
+ };
262
+ /**
263
+ * 歌词播放组件的实现类型
264
+ * @default DomLyricPlayer
265
+ */
266
+ declare const lyricPlayerImplementationAtom: PrimitiveAtom<LyricPlayerImplementationObject>;
267
+ /**
268
+ * 是否启用歌词行模糊效果
269
+ *
270
+ * 性能影响:较高
271
+ * @default true
272
+ */
273
+ declare const enableLyricLineBlurEffectAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
274
+ /**
275
+ * 是否启用歌词行缩放效果
276
+ *
277
+ * 性能影响:无
278
+ * @default true
279
+ */
280
+ declare const enableLyricLineScaleEffectAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
281
+ /**
282
+ * 是否使用物理弹簧算法实现歌词动画效果
283
+ *
284
+ * 如果启用,则会通过弹簧算法实时处理歌词位置,但是需要性能足够强劲的电脑方可流畅运行
285
+ *
286
+ * 如果不启用,则会回退到基于 transition 的过渡效果,对低性能的机器比较友好,但是效果会比较单一
287
+ *
288
+ * 性能影响:较高
289
+ * @default true
290
+ */
291
+ declare const enableLyricLineSpringAnimationAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
292
+ /**
293
+ * 是否显示翻译歌词行
294
+ *
295
+ * 性能影响:无
296
+ * @default true
297
+ */
298
+ declare const enableLyricTranslationLineAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
299
+ /**
300
+ * 是否显示音译歌词行
301
+ *
302
+ * 性能影响:无
303
+ * @default true
304
+ */
305
+ declare const enableLyricRomanLineAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
306
+ /**
307
+ * 是否交换音译和翻译歌词行的显示位置
308
+ *
309
+ * 性能影响:无
310
+ * @default false
311
+ */
312
+ declare const enableLyricSwapTransRomanLineAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
313
+ /**
314
+ * 调节逐词歌词时单词的渐变过渡宽度,单位为一个全角字的宽度
315
+ * - 如果要模拟 Apple Music for Android 的效果,可以设置为 1
316
+ * - 如果要模拟 Apple Music for iPad 的效果,可以设置为 0.5
317
+ * - 如需关闭逐词歌词时单词的渐变过渡效果,可以设置为 0
318
+ * @default 0.5
319
+ */
320
+ declare const lyricWordFadeWidthAtom: WritableAtom<number, [number | ((prev: number) => number) | typeof RESET], void>;
321
+ /**
322
+ * 设置歌词组件的字体家族
323
+ *
324
+ * 以逗号分隔的字体名称组合,等同于 CSS 的 font-family 属性
325
+ * @default ""
326
+ */
327
+ declare const lyricFontFamilyAtom: WritableAtom<string, [string | ((prev: string) => string) | typeof RESET], void>;
328
+ /**
329
+ * 设置歌词组件的字体字重
330
+ *
331
+ * 等同于 CSS 的 font-weight 属性
332
+ * @default 600
333
+ */
334
+ declare const lyricFontWeightAtom: WritableAtom<number | string, [number | string | ((prev: number | string) => number | string) | typeof RESET], void>;
335
+ /**
336
+ * 设置歌词组件的字符间距
337
+ *
338
+ * 等同于 CSS 的 letter-spacing 属性
339
+ * @default "normal"
340
+ */
341
+ declare const lyricLetterSpacingAtom: WritableAtom<string, [string | ((prev: string) => string) | typeof RESET], void>;
342
+ /**
343
+ * 设置歌词的字体大小
344
+ * @default LyricSizePreset.Medium
345
+ */
346
+ declare const lyricSizePresetAtom: WritableAtom<LyricSizePreset, [LyricSizePreset | ((prev: LyricSizePreset) => LyricSizePreset) | typeof RESET], void>;
347
+ /**
348
+ * 播放控制组件的显示类型,即歌曲信息下方的组件
349
+ */
350
+ declare const playerControlsTypeAtom: WritableAtom<PlayerControlsType, [PlayerControlsType | ((prev: PlayerControlsType) => PlayerControlsType) | typeof RESET], void>;
351
+ /**
352
+ * 是否显示歌曲名称
353
+ * @default true
354
+ */
355
+ declare const showMusicNameAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
356
+ /**
357
+ * 在隐藏歌词的情况下专辑图的布局方式
358
+ * @default VerticalCoverLayout.Auto
359
+ */
360
+ declare const verticalCoverLayoutAtom: WritableAtom<VerticalCoverLayout, [VerticalCoverLayout | ((prev: VerticalCoverLayout) => VerticalCoverLayout) | typeof RESET], void>;
361
+ /**
362
+ * 是否显示歌曲作者
363
+ * @default true
364
+ */
365
+ declare const showMusicArtistsAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
366
+ /**
367
+ * 是否显示歌曲专辑名称
368
+ *
369
+ * 如果同时启用三个,布局上可能不太好看,请酌情调节
370
+ * @default false
371
+ */
372
+ declare const showMusicAlbumAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
373
+ /**
374
+ * 是否显示音量控制条
375
+ * @default true
376
+ */
377
+ declare const showVolumeControlAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
378
+ /**
379
+ * 是否显示底部控制按钮组
380
+ *
381
+ * 在横向布局里是右下角的几个按钮,在竖向布局里是播放按钮下方的几个按钮
382
+ * @default true
383
+ */
384
+ declare const showBottomControlAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
385
+ type LyricBackgroundRenderer = {
386
+ renderer?: BackgroundRenderProps["renderer"] | string;
387
+ };
388
+ /**
389
+ * 配置所使用的歌词背景渲染器
390
+ */
391
+ declare const lyricBackgroundRendererAtom: PrimitiveAtom<LyricBackgroundRenderer>;
392
+ /**
393
+ * 当背景渲染器设置为纯色或CSS背景时,使用此值
394
+ * @default "#111111"
395
+ */
396
+ declare const cssBackgroundPropertyAtom: WritableAtom<string, [string | ((prev: string) => string) | typeof RESET], void>;
397
+ /**
398
+ * 调节背景的最大渲染帧率,较低的值可以提升性能
399
+ *
400
+ * 性能影响:高
401
+ * @default 60
402
+ */
403
+ declare const lyricBackgroundFPSAtom: WritableAtom<number, [number | ((prev: number) => number) | typeof RESET], void>;
404
+ /**
405
+ * 调节背景的渲染倍率,较低的值可以提升性能
406
+ *
407
+ * 性能影响:高
408
+ * @default 1
409
+ */
410
+ declare const lyricBackgroundRenderScaleAtom: WritableAtom<number, [number | ((prev: number) => number) | typeof RESET], void>;
411
+ /**
412
+ * 是否启用背景静态模式
413
+ *
414
+ * 让背景会在除了切换歌曲变换封面的情况下保持静止,如果遇到了性能问题,可以考虑开启此项
415
+ *
416
+ * 注意:启用此项会导致背景跳动效果失效
417
+ * @default false
418
+ */
419
+ declare const lyricBackgroundStaticModeAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
420
+ /**
421
+ * 控制歌词播放页面是否可见
422
+ */
423
+ declare const isLyricPageOpenedAtom: PrimitiveAtom<boolean>;
424
+ /**
425
+ * 是否隐藏歌词视图(即使有歌词数据)
426
+ * @default false
427
+ */
428
+ declare const hideLyricViewAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
429
+ /**
430
+ * 是否在进度条上显示剩余时间而非当前时间
431
+ * @default true
432
+ */
433
+ declare const showRemainingTimeAtom: WritableAtom<boolean, [boolean | ((prev: boolean) => boolean) | typeof RESET], void>;
434
+ /**
435
+ * 音频可视化频域范围
436
+ *
437
+ * 单位为赫兹(hz),此项会影响音频可视化和背景跳动效果的展示效果
438
+ * @default [80, 2000]
439
+ */
440
+ declare const fftDataRangeAtom: WritableAtom<[number, number], [[number, number] | ((prev: [number, number]) => [number, number]) | typeof RESET], void>;
441
+ //#endregion
442
+ //#region src/states/controlsAtoms.d.ts
443
+ /**
444
+ * 重复播放的模式
445
+ */
446
+ declare enum RepeatMode {
447
+ Off = "off",
448
+ One = "one",
449
+ All = "all"
450
+ }
451
+ /**
452
+ * 随机播放是否开启
453
+ */
454
+ declare const isShuffleActiveAtom: PrimitiveAtom<boolean>;
455
+ /**
456
+ * 当前的重复播放模式
457
+ */
458
+ declare const repeatModeAtom: PrimitiveAtom<RepeatMode>;
459
+ /**
460
+ * 随机按钮是否可用
461
+ */
462
+ declare const isShuffleEnabledAtom: PrimitiveAtom<boolean>;
463
+ /**
464
+ * 重复按钮是否可用
465
+ */
466
+ declare const isRepeatEnabledAtom: PrimitiveAtom<boolean>;
467
+ /**
468
+ * 切换随机播放模式的动作
469
+ */
470
+ declare const toggleShuffleActionAtom: WritableAtom<null, [], void>;
471
+ /**
472
+ * 切换循环播放模式的动作
473
+ */
474
+ declare const cycleRepeatModeActionAtom: WritableAtom<null, [], void>;
475
+ //#endregion
476
+ //#region src/states/dataAtoms.d.ts
477
+ type SongData = {
478
+ type: "local";
479
+ filePath: string;
480
+ origOrder: number;
481
+ } | {
482
+ type: "custom";
483
+ id: string;
484
+ songJsonData: string;
485
+ origOrder: number;
486
+ };
487
+ /**
488
+ * 一位艺术家的信息
489
+ */
490
+ interface ArtistStateEntry {
491
+ name: string;
492
+ id: string;
493
+ }
494
+ /**
495
+ * 音频质量的类型枚举
496
+ */
497
+ declare enum AudioQualityType {
498
+ None = "none",
499
+ Standard = "standard",
500
+ Lossless = "lossless",
501
+ HiResLossless = "hi-res-lossless",
502
+ DolbyAtmos = "dolby-atmos"
503
+ }
504
+ /**
505
+ * 描述音频质量信息的接口
506
+ */
507
+ interface MusicQualityState {
508
+ /**
509
+ * 音频质量
510
+ */
511
+ type: AudioQualityType;
512
+ /**
513
+ * 音频解码器
514
+ */
515
+ codec: string;
516
+ /**
517
+ * 音频通道数量
518
+ */
519
+ channels: number;
520
+ /**
521
+ * 采样率
522
+ */
523
+ sampleRate: number;
524
+ /**
525
+ * 采样格式
526
+ */
527
+ sampleFormat: string;
528
+ }
529
+ /**
530
+ * 当前播放歌曲的 ID
531
+ */
532
+ declare const musicIdAtom: PrimitiveAtom<string>;
533
+ /**
534
+ * 当前播放的音乐名称
535
+ */
536
+ declare const musicNameAtom: PrimitiveAtom<string>;
537
+ /**
538
+ * 当前播放的音乐创作者列表
539
+ */
540
+ declare const musicArtistsAtom: PrimitiveAtom<ArtistStateEntry[]>;
541
+ /**
542
+ * 当前播放的音乐所属专辑名称
543
+ */
544
+ declare const musicAlbumNameAtom: PrimitiveAtom<string>;
545
+ /**
546
+ * 当前播放的音乐专辑封面 URL
547
+ *
548
+ * 除了图片也可以是视频资源
549
+ */
550
+ declare const musicCoverAtom: PrimitiveAtom<string>;
551
+ /**
552
+ * 当前播放的音乐专辑封面资源是否为视频
553
+ */
554
+ declare const musicCoverIsVideoAtom: PrimitiveAtom<boolean>;
555
+ /**
556
+ * 当前音乐的总时长,单位为毫秒
557
+ */
558
+ declare const musicDurationAtom: PrimitiveAtom<number>;
559
+ /**
560
+ * 当前音乐是否正在播放
561
+ */
562
+ declare const musicPlayingAtom: PrimitiveAtom<boolean>;
563
+ /**
564
+ * 当前音乐的播放进度,单位为毫秒
565
+ */
566
+ declare const musicPlayingPositionAtom: PrimitiveAtom<number>;
567
+ /**
568
+ * 当前播放的音乐音量大小,范围在 [0.0-1.0] 之间
569
+ */
570
+ declare const musicVolumeAtom: WritableAtom<number, [number | ((prev: number) => number) | typeof RESET], void>;
571
+ /**
572
+ * 当前播放的音乐的歌词数据
573
+ */
574
+ declare const musicLyricLinesAtom: PrimitiveAtom<LyricLine[]>;
575
+ /**
576
+ * 当前音乐的音质信息
577
+ */
578
+ declare const musicQualityAtom: PrimitiveAtom<MusicQualityState>;
579
+ /**
580
+ * 根据音质信息生成的、用于UI展示的标签内容
581
+ *
582
+ * 如果为 null 则不显示标签
583
+ */
584
+ declare const musicQualityTagAtom: PrimitiveAtom<{
585
+ tagIcon: boolean;
586
+ tagText: string;
587
+ isDolbyAtmos: boolean;
588
+ } | null>;
589
+ /**
590
+ * 用于音频可视化频谱图的实时频域数据
591
+ */
592
+ declare const fftDataAtom: PrimitiveAtom<number[]>;
593
+ /**
594
+ * 设置低频的音量大小,范围在 80hz-120hz 之间为宜,取值范围在 0.0-1.0 之间。
595
+ *
596
+ * 部分渲染器会根据音量大小调整背景效果(例如根据鼓点跳动)。如果无法获取到类似的数据,请传入 1.0 作为默认值,或不做任何处理。
597
+ */
598
+ declare const lowFreqVolumeAtom: PrimitiveAtom<number>;
599
+ //#endregion
600
+ //#region src/utils/duration.d.ts
601
+ declare function toDuration(duration: number): string;
602
+ //#endregion
603
+ export { ArtistStateEntry, AudioFFTVisualizer, AudioQualityTag, AudioQualityTagProps, AudioQualityType, AutoLyricLayout, BouncingSlider, Callback, ControlThumb, Cover, CoverProps, HorizontalLayout, LyricBackgroundRenderer, LyricPlayerImplementation, LyricPlayerImplementationObject, LyricSizePreset, MediaButton, MenuButton, MusicInfo, MusicQualityState, PlayerControlsType, PrebuiltLyricPlayer, PrebuiltLyricPlayerProps, PrebuiltToggleIconButton, PrebuiltToggleIconButtonType, RepeatMode, SliderProps, SongData, TextMarquee, ToggleIconButton, VerticalCoverLayout, VerticalLayout, VolumeControl, cssBackgroundPropertyAtom, cycleRepeatModeActionAtom, enableLyricLineBlurEffectAtom, enableLyricLineScaleEffectAtom, enableLyricLineSpringAnimationAtom, enableLyricRomanLineAtom, enableLyricSwapTransRomanLineAtom, enableLyricTranslationLineAtom, fftDataAtom, fftDataRangeAtom, hideLyricViewAtom, isLyricPageOpenedAtom, isRepeatEnabledAtom, isShuffleActiveAtom, isShuffleEnabledAtom, lowFreqVolumeAtom, lyricBackgroundFPSAtom, lyricBackgroundRenderScaleAtom, lyricBackgroundRendererAtom, lyricBackgroundStaticModeAtom, lyricFontFamilyAtom, lyricFontWeightAtom, lyricLetterSpacingAtom, lyricPlayerImplementationAtom, lyricSizePresetAtom, lyricWordFadeWidthAtom, musicAlbumNameAtom, musicArtistsAtom, musicCoverAtom, musicCoverIsVideoAtom, musicDurationAtom, musicIdAtom, musicLyricLinesAtom, musicNameAtom, musicPlayingAtom, musicPlayingPositionAtom, musicQualityAtom, musicQualityTagAtom, musicVolumeAtom, onChangeVolumeAtom, onClickAudioQualityTagAtom, onClickControlThumbAtom, onCycleRepeatModeAtom, onLyricLineClickAtom, onLyricLineContextMenuAtom, onPlayOrResumeAtom, onRequestNextSongAtom, onRequestOpenMenuAtom, onRequestPrevSongAtom, onSeekPositionAtom, onToggleShuffleAtom, playerControlsTypeAtom, repeatModeAtom, showBottomControlAtom, showMusicAlbumAtom, showMusicArtistsAtom, showMusicNameAtom, showRemainingTimeAtom, showVolumeControlAtom, toDuration, toggleShuffleActionAtom, verticalCoverLayoutAtom };
604
+ //# sourceMappingURL=amll-react-framework.d.cts.map