RecorderAudio.jsx 820 B

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