Files
seojng-tv/composables/useAudioUnlock.ts
T
ysj7705 69b647145f
CI / Type-check & Build (push) Failing after 5m50s
CI / Build & Push image (push) Skipped
first commit
2026-08-12 15:01:43 +09:00

22 lines
575 B
TypeScript

let audioCtx: AudioContext | null = null
export function useAudioUnlock() {
const unlocked = useState('audio-unlocked', () => false)
async function unlockAudio() {
if (!import.meta.client) return
try {
const Ctx = window.AudioContext || (window as unknown as { webkitAudioContext: typeof AudioContext }).webkitAudioContext
if (!audioCtx) audioCtx = new Ctx()
if (audioCtx.state === 'suspended') {
await audioCtx.resume()
}
unlocked.value = true
} catch {
// ignore
}
}
return { unlocked, unlockAudio }
}