RecorderVideo.jsx 946 B

123456789101112131415161718192021222324
  1. import VideocamRoundedIcon from '@mui/icons-material/VideocamRounded';
  2. import { useReactMediaRecorder } from "react-media-recorder";
  3. import { memo, useEffect, useState } from "react";
  4. const RecordViewVideo = ({chatId, sendMessage}) => {
  5. const { status, startRecording, stopRecording, mediaBlobUrl, clearBlobUrl, } =
  6. useReactMediaRecorder({ video: true,
  7. blobPropertyBag: {type: 'video/mp4'},
  8. onStart: () => console.log('start'),
  9. onStop: (_,media) => { sendMessage(null, chatId, null, [media] , null, null); clearBlobUrl()}
  10. });
  11. return (
  12. <div style={{paddingRight: '20px'}}>
  13. <VideocamRoundedIcon
  14. color={status === "recording" ? "primary" : "disabled"}
  15. onMouseDown={startRecording}
  16. onMouseUp={stopRecording}/>
  17. </div>
  18. );
  19. };
  20. export const MemoRecordViewVideo = memo(RecordViewVideo)