fix: dict audio

This commit is contained in:
Gabe Yuan
2024-03-25 21:00:39 +08:00
parent a83039577c
commit 602b51b1f5
3 changed files with 21 additions and 17 deletions

View File

@@ -1,5 +1,6 @@
import { useCallback, useEffect, useRef, useState } from "react";
import { apiBaiduTTS } from "../apis";
import { kissLog } from "../libs/log";
/**
* 声音播放hook
@@ -7,13 +8,12 @@ import { apiBaiduTTS } from "../apis";
* @returns
*/
export function useAudio(src) {
// const audioRef = useRef(new Audio(src));
const audioRef = useRef(null);
const [error, setError] = useState(null);
const [ready, setReady] = useState(false);
const [playing, setPlaying] = useState(false);
const play = useCallback(() => {
const onPlay = useCallback(() => {
audioRef.current?.play();
}, []);
@@ -33,17 +33,27 @@ export function useAudio(src) {
error,
ready,
playing,
play,
onPlay,
};
}
/**
* 获取语音hook
* @param {*} text
* @param {*} lan
* @param {*} spd
* @returns
*/
export function useTextAudio(text, lan = "uk", spd = 3) {
const [src, setSrc] = useState("");
useEffect(() => {
(async () => {
const res = await apiBaiduTTS(text, lan, spd);
setSrc(res);
try {
setSrc(await apiBaiduTTS(text, lan, spd));
} catch (err) {
kissLog(err, "baidu tts");
}
})();
}, [text, lan, spd]);