首页 > 解决方案 > p5.speechrec 不适用于 chrome 弹出窗口和背景

问题描述

如果我在 content_scripts 中包含所有文件,我将 p5.speech 用于我的 chrome 扩展,它在页面加载时工作正常。但是在我的 popup.html 或 background_scripts 中包含它时,p5 语音正在工作,但 Speechrec 似乎不起作用。(1)在后台脚本中使用

"background":{
    "scripts":[
      "assets/p5.js",
      "assets/addons/p5.sound.js",
      "assets/addons/p5.dom.js",
      "assets/p5.speech.js",
      "custom.js"
    ]
  }

自定义.js

var lang = navigator.language || 'en-US';
var speechrec= new p5.SpeechRec(lang,gotSpeech);
var cont = true;
var interm = false;
speechrec.start(cont,interm);

var foo = new p5.Speech();
foo.speak("Hello");

function gotSpeech(){
  foo.speak(speechrec.resultString);
  console.log(speechrec.resultString);
}

在这种情况下,当我启动浏览器时它会打招呼,甚至在后台页面控制台中它也显示已加载 p5 语音,但 Speechrec 不起作用。

(2) 我在 popup.html 中包含相同的脚本,弹出类似的结果,当我单击扩展图标时,它会打开弹出窗口并打招呼但不听任何内容。

只有在内容脚本 js 中包含这些内容,才能使语音识别在每个选项卡的加载时工作。

PS:我收到有关 chrome 于 2018 年 10 月在控制台中再次启动音频策略的警告,但我每次使用 p5.speech 时都会收到它们,即使它正在工作。

标签: javascriptgoogle-chromegoogle-chrome-extensionp5.js

解决方案


推荐阅读