JavaScript를 처음 사용하고 getUserMedia API를 사용하여 온라인 오디오 레코더를 만들려고합니다. 문제는 navigator.getUserMedia를 호출 할 때마다 성공 콜백 함수가 정의되지 않았으므로 함수가 아니라는 오류가 발생한다는 것입니다. 그것은 콜백 후에 괄호를 추가 할 때 작동하지만 createMediaStreamSource를 호출 할 때 잘못된 MediaStream 소스에 대한 오류가 발생합니다.GetUserMedia 콜백 정의되지 않음
온라인으로 getUserMedia를 사용하는 몇 가지 예제를 발견했지만, 분명히 온라인에서 작동하더라도 내 컴퓨터에서 실행하려고하면 같은 문제가 발생합니다.
다음은 아래 코드입니다. 감사!
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
//tests if browser is compatible with getUserMedia API
function hasGetUserMedia()
{
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
//successful callback for getUserMedia
function gotStream(stream)
{
console.log('Compatible')
//set up microphone input to Web Audio API
var mic = context.createMediaStreamSource(stream);
var filter = context.createBiquadFilter();
//connect
mic.connect(filter);
filter.connect(context.destination);
console.log('Here')
}
//error Callback for getUserMedia
function errorCallback()
{
alert('Error capturing audio');
}
//initial function
function testGetUserMedia()
{
if (!hasGetUserMedia())
{
alert("getUserMedia() is not supported in your browser");
window.close();
}
//if Compatible
getUserMedia({audio:true}, gotStream, errorCallback);
}
window.addEventListener('load', testGetUserMedia);