不能使用流,这是 getusermedia 外部功能的承诺
cant use stream which is promise of getusermedia outside function
我正在尝试使用此 tutorial
在网络浏览器中录制音频
我正在使用 getusermedia。
我无法在功能外使用 micstream。
var rec
var context = new AudioContext();
document.querySelector('#startrecord').addEventListener('click', () => {
navigator.mediaDevices.getUserMedia({
audio: true,
video: false
}).then((micStream) => {
var microphone = context.createMediaStreamSource(micStream);
rec = new Recorder(microphone, {
numChannels: 1
});
rec.record();
console.log('Started recording');
});
});
document.querySelector('#stoprecord').addEventListener('click', stopRecording);
function stopRecording(){
rec.stop(); //stop recording
console.log('Stopped recording.');
micStream.getAudioTracks()[0].stop(); //turn off mic
rec.exportWAV(shareAudio); //wave encode and share
}
function shareAudio(blob){
//send blob over to python using web sockets
}
我的控制台输出是
Started recording(index):28
Stopped recording.(index):35
Uncaught ReferenceError: micStream is not defined
at HTMLButtonElement.stopRecording ((index):37)
索引 37 是
micStream.getAudioTracks()[0].stop(); //turn off mic
你可以用 rec
和录音机做同样的事情:
var rec, mic;
...
}).then((micStream) => {
mic = micStream;//now available outside function scope like rec
...
mic.getAudioTracks()[0].stop(); //turn off mic
我正在尝试使用此 tutorial
在网络浏览器中录制音频我正在使用 getusermedia。
我无法在功能外使用 micstream。
var rec
var context = new AudioContext();
document.querySelector('#startrecord').addEventListener('click', () => {
navigator.mediaDevices.getUserMedia({
audio: true,
video: false
}).then((micStream) => {
var microphone = context.createMediaStreamSource(micStream);
rec = new Recorder(microphone, {
numChannels: 1
});
rec.record();
console.log('Started recording');
});
});
document.querySelector('#stoprecord').addEventListener('click', stopRecording);
function stopRecording(){
rec.stop(); //stop recording
console.log('Stopped recording.');
micStream.getAudioTracks()[0].stop(); //turn off mic
rec.exportWAV(shareAudio); //wave encode and share
}
function shareAudio(blob){
//send blob over to python using web sockets
}
我的控制台输出是
Started recording(index):28
Stopped recording.(index):35
Uncaught ReferenceError: micStream is not defined
at HTMLButtonElement.stopRecording ((index):37)
索引 37 是
micStream.getAudioTracks()[0].stop(); //turn off mic
你可以用 rec
和录音机做同样的事情:
var rec, mic;
...
}).then((micStream) => {
mic = micStream;//now available outside function scope like rec
...
mic.getAudioTracks()[0].stop(); //turn off mic