Skip to content

Commit a4992ba

Browse files
committed
fix(synced-lyric): fix timestamp
- Close #2323 - Close #2379
1 parent 5b004ee commit a4992ba

File tree

1 file changed

+6
-20
lines changed
  • src/plugins/synced-lyrics/renderer

1 file changed

+6
-20
lines changed

src/plugins/synced-lyrics/renderer/index.ts

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ export let _ytAPI: YoutubePlayer | null = null;
1616

1717
export const renderer = createRenderer<{
1818
observerCallback: MutationCallback;
19-
hasAddedEvents: boolean;
2019
observer?: MutationObserver;
2120
videoDataChange: () => Promise<void>;
22-
progressCallback: (evt: Event) => void;
21+
updateTimestampInterval?: NodeJS.Timeout | string | number;
2322
}, SyncedLyricsPluginConfig>({
2423
onConfigChange(newConfig) {
2524
setConfig(newConfig);
@@ -50,15 +49,12 @@ export const renderer = createRenderer<{
5049
await this.videoDataChange();
5150
},
5251

53-
hasAddedEvents: false,
54-
5552
async videoDataChange() {
56-
if (!this.hasAddedEvents) {
57-
const video = document.querySelector('video');
58-
59-
video?.addEventListener('timeupdate', this.progressCallback);
60-
61-
if (video) this.hasAddedEvents = true;
53+
if (!this.updateTimestampInterval) {
54+
this.updateTimestampInterval = setInterval(
55+
() => setCurrentTime((_ytAPI?.getCurrentTime() ?? 0) * 1000),
56+
100,
57+
);
6258
}
6359

6460
this.observer ??= new MutationObserver(
@@ -73,16 +69,6 @@ export const renderer = createRenderer<{
7369
header.removeAttribute('disabled');
7470
},
7571

76-
progressCallback(evt: Event) {
77-
switch (evt.type) {
78-
case 'timeupdate': {
79-
const video = evt.target as HTMLVideoElement;
80-
setCurrentTime(video.currentTime * 1000);
81-
break;
82-
}
83-
}
84-
},
85-
8672
async start(ctx: RendererContext<SyncedLyricsPluginConfig>) {
8773
setConfig(await ctx.getConfig());
8874

0 commit comments

Comments
 (0)