Skip to content

Commit b2a739b

Browse files
committed
✨ opt: 修改变量名,并优化功能描述描述文本
1 parent 341c472 commit b2a739b

7 files changed

Lines changed: 37 additions & 32 deletions

File tree

src/components/Setting/config/lyric.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -368,21 +368,6 @@ export const useLyricSettings = (): SettingConfig => {
368368
}),
369369
defaultValue: 500,
370370
},
371-
{
372-
key: "lyricSyncOffset",
373-
label: "歌词同步微调",
374-
type: "input-number",
375-
description: "手动调整歌词与声音的同步,正值歌词提前,负值歌词延后。",
376-
min: -1000,
377-
max: 1000,
378-
step: 10,
379-
suffix: "ms",
380-
value: computed({
381-
get: () => settingStore.lyricSyncOffset,
382-
set: (v) => (settingStore.lyricSyncOffset = v || 0),
383-
}),
384-
defaultValue: 0,
385-
},
386371
],
387372
},
388373
{

src/components/Setting/config/play.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,24 @@ export const usePlaySettings = (): SettingConfig => {
583583
settingStore.audioEngine === "element",
584584
),
585585
},
586+
{
587+
key: "audioDelayCompensation",
588+
label: "音频与歌词同步补偿",
589+
type: "input-number",
590+
description:
591+
"手动补偿音频与歌词进度延迟。<br>正值歌词变快,负值歌词进度变慢。<br>适用于移动端等自动延迟检测不准的设备。",
592+
tags: [{ text: "Beta", type: "warning" }],
593+
show: computed(() => settingStore.audioLatencyHint === "playback"),
594+
min: -1000,
595+
max: 1000,
596+
step: 10,
597+
suffix: "ms",
598+
value: computed({
599+
get: () => settingStore.audioDelayCompensation,
600+
set: (v) => (settingStore.audioDelayCompensation = v ?? 0),
601+
}),
602+
defaultValue: 0,
603+
},
586604
{
587605
key: "playSongDemo",
588606
label: "播放试听",

src/core/audio-player/AudioElementPlayer.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,11 @@ export class AudioElementPlayer extends BaseAudioPlayer {
196196
if (this.isInternalSeeking) {
197197
return this.targetSeekTime;
198198
}
199-
// 基础时间 - 自动延迟补偿 + 手动同步偏移
199+
// 基础时间 - 自动延迟补偿 + 手动延迟补偿
200200
return (
201-
(this.audioElement.currentTime || 0) - this.compensatedLatency + this.syncOffset / 1000
201+
(this.audioElement.currentTime || 0) -
202+
this.compensatedLatency +
203+
this.audioDelayCompensation / 1000
202204
);
203205
}
204206

src/core/audio-player/BaseAudioPlayer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ export abstract class BaseAudioPlayer
6767

6868
protected compensatedLatency = 0;
6969

70-
/** 用户手动设置的歌词同步偏移量 (毫秒) */
71-
protected syncOffset = 0;
70+
/** 用户手动设置的音频延迟补偿 (毫秒) */
71+
protected audioDelayCompensation = 0;
7272

7373
protected effectManager: AudioEffectManager | null = null;
7474

@@ -494,8 +494,8 @@ export abstract class BaseAudioPlayer
494494
* 设置歌词同步偏移
495495
* @param offset 偏移量 (毫秒)
496496
*/
497-
public setSyncOffset(offset: number): void {
498-
this.syncOffset = offset;
497+
public setAudioDelayCompensation(offset: number): void {
498+
this.audioDelayCompensation = offset;
499499
}
500500

501501
/** 加载资源 */

src/core/audio-player/IPlaybackEngine.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ export interface IPlaybackEngine {
137137
getRate(): number;
138138

139139
/**
140-
* 设置歌词同步偏移量
140+
* 设置音频延迟手动补偿
141141
* @param offset 偏移量 (毫秒)
142142
*/
143-
setSyncOffset(offset: number): void;
143+
setAudioDelayCompensation(offset: number): void;
144144

145145
/**
146146
* 设置音频输出设备

src/core/player/AudioManager.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -367,12 +367,12 @@ class AudioManager extends TypedEventTarget<AudioEventMap> implements IPlaybackE
367367
}
368368

369369
/**
370-
* 设置歌词同步偏移量
370+
* 设置音频延迟手动补偿
371371
* @param offset 偏移量 (毫秒)
372372
*/
373-
public setSyncOffset(offset: number): void {
373+
public setAudioDelayCompensation(offset: number): void {
374374
// FFmpeg 和 MPV 引擎可能没有实现此方法
375-
this.engine.setSyncOffset?.(offset);
375+
this.engine.setAudioDelayCompensation?.(offset);
376376
}
377377

378378
/**
@@ -514,11 +514,11 @@ export const useAudioManager = (): AudioManager => {
514514
settingStore.audioEngine,
515515
);
516516

517-
// 监听歌词同步偏移量变化
517+
// 监听音频延迟补偿变化
518518
watch(
519-
() => settingStore.lyricSyncOffset,
519+
() => settingStore.audioDelayCompensation,
520520
(offset) => {
521-
win[AUDIO_MANAGER_KEY]?.setSyncOffset(offset);
521+
win[AUDIO_MANAGER_KEY]?.setAudioDelayCompensation(offset);
522522
},
523523
{ immediate: true }, // 立即执行一次以应用初始值
524524
);

src/stores/setting.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ export interface SettingState {
260260
wordFadeWidth: number;
261261
/** 歌词时延调节步长(毫秒) */
262262
lyricOffsetStep: number;
263-
/** 歌词同步微调(毫秒) */
264-
lyricSyncOffset: number;
263+
/** 音频延迟手动补偿(毫秒) */
264+
audioDelayCompensation: number;
265265
/** 启用在线 TTML 歌词 */
266266
enableOnlineTTMLLyric: boolean;
267267
/** 启用 QM 歌词 */
@@ -612,7 +612,7 @@ export const useSettingStore = defineStore("setting", {
612612
hidePassedLines: false,
613613
wordFadeWidth: 0.5,
614614
lyricOffsetStep: 500,
615-
lyricSyncOffset: 0,
615+
audioDelayCompensation: 0,
616616
enableOnlineTTMLLyric: false,
617617
enableQQMusicLyric: false,
618618
lyricPriority: "auto",

0 commit comments

Comments
 (0)