import React, { useState, useEffect, useRef } from "react"; import { connect } from "react-redux"; import request from 'superagent' import moment from "moment"; import { Request } from "@peace/utils"; import { ApiTable } from "$utils"; import './videoPlay.less'; import { DatePicker, Toast, ToastFactory, Space } from '@douyinfe/semi-ui'; import { checkAudioVideo, uploadVoice2Yingshi, sendVoice2YingshiCamera } from '$utils'; import AudioRecoder, { RecordState } from "./audioRecoder" const VideoOperationTalk = ({ videoObj, }) => { const [recordState, setRecordState] = useState(RecordState.NONE) const ToastInCustomContainer = ToastFactory.create({ getPopupContainer: () => document.getElementById('vcmp_videoplay'), }); useEffect(() => { }, []) const startTalk = () => { setRecordState(RecordState.START) } const stopTalk = () => { setRecordState(RecordState.STOP) } const onStopTalk = async (data) => { setRecordState(RecordState.STOP) const { blob: audioData } = data; if (!audioData) return; let buffer = await audioData.arrayBuffer(); let file = new File([buffer], Date.now() + "", { type: "audio/mpeg" }); try { let uploadRes = await uploadVoice2Yingshi({ voiceFile: file, accessToken: videoObj.yingshiToken, }) const { url } = uploadRes let sendRes = await sendVoice2YingshiCamera({ accessToken: videoObj.yingshiToken, deviceSerial: videoObj.serialNo, channelNo: videoObj.channelNo, fileUrl: url }); ToastInCustomContainer.success('已发送'); } catch (error) { if (error.msg) { ToastInCustomContainer.error(error.msg); } else { ToastInCustomContainer.error('发送失败'); } } } return (