voice-changer/client/demo/src/001_globalHooks/001_useAudioConfig.ts

26 lines
787 B
TypeScript
Raw Normal View History

2023-02-16 18:09:56 +03:00
import { useEffect, useState } from "react"
export type AudioConfigState = {
audioContext: AudioContext | null
}
export const useAudioConfig = (): AudioConfigState => {
const [audioContext, setAudioContext] = useState<AudioContext | null>(null)
useEffect(() => {
2023-02-16 20:11:03 +03:00
const createAudioContext = () => {
2023-02-16 18:09:56 +03:00
const ctx = new AudioContext()
2023-02-16 20:11:03 +03:00
document.removeEventListener('touchstart', createAudioContext);
document.removeEventListener('mousedown', createAudioContext);
2023-02-16 18:09:56 +03:00
setAudioContext(ctx)
}
2023-02-16 20:11:03 +03:00
document.addEventListener('touchstart', createAudioContext);
document.addEventListener('mousedown', createAudioContext);
2023-02-16 18:09:56 +03:00
}, [])
const ret: AudioConfigState = {
audioContext
}
return ret
}