perf: ne plus précharger le fichier audio entier avant lecture
This commit is contained in:
@@ -20,6 +20,12 @@ import {getAlias} from '../../lib/utils/format'
|
||||
|
||||
const IMAGE_URL = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337'
|
||||
|
||||
function createAudio(src) {
|
||||
const audio = new Audio(src)
|
||||
audio.preload = 'metadata'
|
||||
return audio
|
||||
}
|
||||
|
||||
function parseLrc(text) {
|
||||
const lines = []
|
||||
for (const raw of text.split('\n')) {
|
||||
@@ -68,7 +74,7 @@ const TinyText = styled(Typography)({
|
||||
})
|
||||
|
||||
export default function Lekte({audio, url, parole}) {
|
||||
const audioRef = useRef(new Audio(audio))
|
||||
const audioRef = useRef(createAudio(audio))
|
||||
const intervalRef = useRef()
|
||||
const isReady = useRef(false)
|
||||
const [duration, setDuration] = useState(0)
|
||||
@@ -135,7 +141,7 @@ export default function Lekte({audio, url, parole}) {
|
||||
|
||||
useEffect(() => {
|
||||
audioRef.current.pause()
|
||||
audioRef.current = new Audio(audio)
|
||||
audioRef.current = createAudio(audio)
|
||||
setIsPlaying(false)
|
||||
setVolume(100)
|
||||
setPosition(0)
|
||||
|
||||
Reference in New Issue
Block a user