作者:背着单反看世界 | 来源:互联网 | 2023-09-02 18:29
我写的语音识别用的在safari上可以弹出访问麦克风的权限框,但是在uc上,chrome上,和firefox上连框都不弹,是浏览器默认禁止了吗,我看api也是支持的,下面是代码
我写的语音识别用的在safari上可以弹出访问麦克风的权限框,但是在uc上,chrome上,和firefox上连框都不弹,是浏览器默认禁止了吗,我看api也是支持的,
下面是代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| function gotStream(stream) {
var audioCOntext= new AudioContext();
inputPoint = audioContext.createGain();
// Create an AudioNode from the stream.
realAudioInput = audioContext.createMediaStreamSource(stream);
audioInput = realAudioInput;
audioInput.connect(inputPoint);
analyserNode = audioContext.createAnalyser();
analyserNode.fftSize = 2048;
inputPoint.connect( analyserNode );
audioRecorder = new Recorder( inputPoint );
zeroGain = audioContext.createGain();
zeroGain.gain.value = 0.0;
inputPoint.connect( zeroGain );
zeroGain.connect( audioContext.destination );
updateAnalysers();
}
function getUserMedia(constrains,success,error){
if(navigator.mediaDevices.getUserMedia){
//最新标准API
navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error);
} else if (navigator.webkitGetUserMedia){
//webkit内核浏览器
navigator.webkitGetUserMedia(constrains).then(success).catch(error);
} else if (navigator.mozGetUserMedia){
//Firefox浏览器
navagator.mozGetUserMedia(constrains).then(success).catch(error);
} else if (navigator.getUserMedia){
//旧版API
navigator.getUserMedia(constrains).then(success).catch(error);
}
}
function initAudio() {
if (navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia){
//调用用户媒体设备,访问摄像头
getUserMedia({
audio:true
},gotStream,error);
} else {
alert("你的浏览器不支持访问用户媒体设备");
}
}
function error(error){
console.log('访问媒体设备失败:',error.name,error.message)
}
window.addEventListener('load', initAudio ); |