ze-react-component-library
Version:
ZeroETP React Component Library
66 lines (50 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("antd/lib/message/style");
var _message2 = _interopRequireDefault(require("antd/lib/message"));
var _chatDialog = require("chat-dialog");
var _react = require("react");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var useRecorder = function useRecorder() {
var _a = (0, _react.useState)(false),
isRecording = _a[0],
setIsRecording = _a[1];
var recorderRef = (0, _react.useRef)();
var start = function start(onError) {
var recorder = recorderRef.current;
if (recorder) {
try {
recorder.start();
setIsRecording(true);
} catch (error) {
_message2.default.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);
}
};
(0, _react.useEffect)(function () {
var recorder = new _chatDialog.Recorder({});
recorderRef.current = recorder;
}, []);
return {
start: start,
stop: stop,
isRecording: isRecording
};
};
var _default = useRecorder;
exports.default = _default;