forked from React-Group/interstellar_ai
39 lines
No EOL
1.3 KiB
TypeScript
39 lines
No EOL
1.3 KiB
TypeScript
// import React, { useState, useRef } from 'react'
|
|
|
|
// const AudioRecorder: React.FC = () => {
|
|
// const [isRecording, setIsRecording] = useState(false)
|
|
// const [audioURL, setAudioURL] = useState<string | null>(null)
|
|
// const medaRecorderRef = useRef<MediaRecorder | null>(null)
|
|
// const audioChunks = useRef<Blob[]>([])
|
|
|
|
// const startRecording = async () => {
|
|
// const stream = await navigator.mediaDevices.getUserMedia({ audio: true })
|
|
// const mediaRecorder = new MediaRecorder(stream)
|
|
// medaRecorderRef.current = mediaRecorder
|
|
|
|
// mediaRecorder.ondataavailable = (event) => {
|
|
// audioChunks.current.push(event.data)
|
|
// }
|
|
|
|
// mediaRecorder.onstop = () => {
|
|
// const audioBlob = new Blob(audioChunks.current, { type: "audio/wav" })
|
|
// const url = URL.createObjectURL(audioBlob)
|
|
// setAudioURL(url)
|
|
// audioChunks.current = []
|
|
// }
|
|
|
|
// mediaRecorder.start()
|
|
// setIsRecording(true)
|
|
|
|
// const stopRecording = () => {
|
|
// medaRecorderRef.current?.stop()
|
|
// setIsRecording(false)
|
|
// }
|
|
|
|
// return (
|
|
// <div></div>
|
|
// )
|
|
// }
|
|
// }
|
|
|
|
// export default AudioRecorder
|