@applemusic-like-lyrics/react-full 0.2.1 → 0.3.1

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