Optimize fullscreen rendering

This commit is contained in:
lucast committed 2026-10-06 02:33:07 +02:00
1 parent b696da1854
commit b190d1671c
5 files changed
+93 -65

No files matched your search

+6 -6
View File
@@ -21,7 +21,7 @@ export default defineNuxtPlugin((nuxtApp) => {
}
const VOLUME_STORAGE_KEY = "music-v2-player-volume"
const DEFAULT_VOLUME = 0.5
const DEBUG_BEAT_ANALYSIS = true
const DEBUG_BEAT_ANALYSIS = false
const sound = ref<Howl | null>(null)
const queue = ref<Track[]>([])
@@ -90,6 +90,7 @@ export default defineNuxtPlugin((nuxtApp) => {
})
const duration = ref(0)
let lastPositionUpdate = 0
let trackingTimer: number | null = null
let mediaSessionSongId: string | null = null
const stopBeatAnalysis = (reason = "stopped") => {
@@ -233,8 +234,6 @@ export default defineNuxtPlugin((nuxtApp) => {
}
}
const aniFrame = ref<number | null>(null)
// Helpers
const updateMediaSession = () => {
if (!import.meta.client) return
@@ -334,6 +333,7 @@ export default defineNuxtPlugin((nuxtApp) => {
}
const startTracking = () => {
if (trackingTimer !== null) window.clearTimeout(trackingTimer)
const update = () => {
tick.value++
const now = Date.now()
@@ -341,15 +341,15 @@ export default defineNuxtPlugin((nuxtApp) => {
lastPositionUpdate = now
updateMediaSession()
}
aniFrame.value = requestAnimationFrame(update)
trackingTimer = window.setTimeout(update, 100)
}
update()
}
const stopTracking = () => {
if (aniFrame.value) cancelAnimationFrame(aniFrame.value)
aniFrame.value = null
if (trackingTimer !== null) window.clearTimeout(trackingTimer)
trackingTimer = null
}
const createHowl = async (song: Track) => {