Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getUserMedia()在普通chrome中不起作用,但在启动pwa chrome时起作用_Javascript_Google Chrome_Getusermedia - Fatal编程技术网

Javascript getUserMedia()在普通chrome中不起作用,但在启动pwa chrome时起作用

Javascript getUserMedia()在普通chrome中不起作用,但在启动pwa chrome时起作用,javascript,google-chrome,getusermedia,Javascript,Google Chrome,Getusermedia,在有人评论getUserMedia必须通过本地或https之前,我知道,我的网站是https,当我通过本地主机启动时,我使用VSCode@port 5500的实时服务器插件启动 我的问题是,我正在使用getUserMedia()获取用户麦克风的实时更新,并将其传递到我的程序中进行处理。在我的“launch.json”中,我有一个 { "name": "Launch Chrome", "request": "la

在有人评论getUserMedia必须通过本地或https之前,我知道,我的网站是https,当我通过本地主机启动时,我使用VSCode@port 5500的实时服务器插件启动

我的问题是,我正在使用getUserMedia()获取用户麦克风的实时更新,并将其传递到我的程序中进行处理。在我的“launch.json”中,我有一个

{
    "name": "Launch Chrome",
    "request": "launch",
    "type": "pwa-chrome",
    "url": "http://127.0.0.1:5500",
    "webRoot": "${workspaceFolder}"
}
这个很好用。然而,如果我将“类型”更改为“chrome”,即

{
    "name": "Launch Chrome",
    "request": "launch",
    "type": "chrome",
    "url": "http://127.0.0.1:5500",
    "webRoot": "${workspaceFolder}"
}
代码不再工作,程序也不会拾取我的麦克风,即使chrome页面显示“此网站正在使用你的麦克风。”通知

这意味着,当我要把这个网站直播到我的实际网站上时,麦克风没有拿起,软件也不能工作。这是获取usermedia的代码

function getMicrophoneAccess(){
    let constraints = {audio:true};
    navigator.mediaDevices.getUserMedia(constraints).then(function(stream){
        source = audioContext.createMediaStreamSource(stream);
        let ready = new Event('streamReady');
        dispatchEvent(ready);
    });
}
然后在我实际使用流的地方

function runSoundAnalysis(){
    analyser.getByteFrequencyData(soundDataArray);
    let averageSound = 0;
    for (let i = 0; i < soundDataArray.length; i+=2){
        averageSound += soundDataArray[i];
    }
    averageSound /= soundDataArray.length / 2;
    if (averageSound != 0){
        console.log(averageSound); 
    }
    return averageSound;
}
函数runSoundAnalysis(){
分析仪。GetByTefFrequencyData(soundDataArray);
设averageSound=0;
对于(设i=0;i
其中,在“chrome”上运行时,averageSound在程序的所有循环中均为0

谢谢你的帮助:)


编辑:要添加,我选中了,它可以在firefox上运行,所以我一定是错误地解释了如何使用chrome的getUserMedia()或其他东西。

找到了答案,在普通chrome中,它要求在将状态设置为“live”之前必须调用audioContext.resume()。我只是在我的初始化函数中调用了它,现在它可以工作了