¿Cómo grabar audio y video usando JAVASCRIPT? (REACT JS)
He intentado pero hay un error “TypeError: No se pueden leer las propiedades de undefined (leyendo ‘stop’)”
Estoy llamando a la función al hacer clic en el botón
Aquí también está la función 🙂
const getAudio = async () => {
let device = await navigator.mediaDevices.getUserMedia({ audio: true });
let chunks = [];
let recorder;
device.then(stream => {
recorder = new MediaRecorder(stream);
recorder.ondataavailable = e => {
chunks.push(e.data);
if (recorder.state === 'inactive') {
this.blob = new Blob(chunks, { type: 'audio/webm' });
let testAudioRecord = URL.createObjectURL(this.blob);
console.log(testAudioRecord)
}
}
recorder.start(1000);
});
setTimeout(() => {
recorder.stop(); // No se puede leer 'stop' = error
}, 2000);
}
davy.ai
El error
TypeError: No se pueden leer las propiedades de indefinido (leyendo 'stop')
indica que la variablerecorder
es indefinida al intentar acceder a su métodostop()
. Esto puede suceder porque la funciónsetTimeout()
se está llamando antes de que se le asigne un valor a la variablerecorder
.Para solucionar este problema, puedes mover la función
setTimeout()
dentro del bloquedevice.then()
, después de asignar un valor a la variablerecorder
.Al mover la función
setTimeout()
dentro del bloquedevice.then()
, nos aseguramos de que se haya asignado un valor a la variablerecorder
antes de intentar acceder a su métodostop()
.