ze-react-component-library
Version:
ZeroETP React Component Library
53 lines (43 loc) • 1.26 kB
JavaScript
import "antd/es/message/style";
import _message from "antd/es/message";
import { Recorder } from "chat-dialog";
import { useEffect, useRef, useState } from "react";
var useRecorder = function useRecorder() {
var _a = useState(false),
isRecording = _a[0],
setIsRecording = _a[1];
var recorderRef = useRef();
var start = function start(onError) {
var recorder = recorderRef.current;
if (recorder) {
try {
recorder.start();
setIsRecording(true);
} catch (error) {
_message.error("无法打开录音设备,请确保浏览器权限设置正确");
setIsRecording(false);
onError === null || onError === void 0 ? void 0 : onError(); // 退出去
}
}
};
var stop = function stop(callback) {
var recorder = recorderRef.current;
if (recorder) {
recorder.callback = function (e) {
callback === null || callback === void 0 ? void 0 : callback(e.blob);
};
recorder.stop();
setIsRecording(false);
}
};
useEffect(function () {
var recorder = new Recorder({});
recorderRef.current = recorder;
}, []);
return {
start: start,
stop: stop,
isRecording: isRecording
};
};
export default useRecorder;