我正在尝试调用recorder.start();在我的javascript中,但是控制台错误显示recorder.start()不是一个函数。我做错了什么?
const recordAudio=async function() {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const mediaRecorder = new MediaRecorder(stream);
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
audioChunks.push(event.data);
});
let start = function(){ mediaRecorder.start()};
};
const handleAction=function() {
const recorder = recordAudio();
const actionButton = document.getElementById('action');
actionButton.disabled = true;
recorder.start();
}
2条答案
按热度按时间kh212irz1#
recordAudio
函数返回Promise<void>
。而是返回
mediaRecorder
,或者返回包含start
方法对象然后您可以使用
const recorder = await recordAudio();
获取示例的值mzillmmw2#
It's a Promise
您得到的是Promise示例而不是函数示例,因此start()不存在。
也许你可以在recordAudio()中调用start(),它会在你的流准备好后执行。