如何解决使用内容脚本注入音频
| 我有一个内容脚本,该脚本可以读取数据,并使用google tts服务获取输出音频。 问题涉及通过扩展注入脚本 当我通过javascript注入音频元素时,我看到正在调用正确的url并附加了音频元素。但是它不起作用。我已经设置了自动播放属性。 我正在使用的片段 var url = \'http://translate.google.com/translate_tts?tl=en&q=\' + encoded;
console.log(url);
var audio = new Audio();
audio.setAttribute(\'src\',url);
audio.setAttribute(\'autoplay\');
var t = document.getElementById(\'doc\');
if(t.appendChild(audio)){
console.log(\'appended\');
}
https://chrome.google.com/webstore/developer/detail/dhfpnmpbgjadmhggjeajdfmkcclckeim
解决方法
我也对曼苏尔先生的
load
和play
建议不走运。我认为这里的问题是你们俩都正确了一半:a)将autoplay
设置为true
,并且b)只需在后台页面中进行操作即可。
例如,我使此后台页面运行正常:
<!doctype html>
<html>
<body>
<script type=\"text/javascript\">
var url = \"http://translate.google.com/translate_tts?tl=en&q=Background\";
var audio = new Audio(url);
audio.autoplay = true;
</script>
</body>
</html>
还请注意,我从未将元素添加到文档中;如果您在那里没有运气,您可以随时加注appendChild
,看看是否有区别。
另外,我认为您的原始代码应该可以正常工作-即使ID为doc
的元素不存在-如果您将其放在后台页面中也可以。
更多注意事项
出于某些奇怪的原因,将“与”号“校正”为ѭ8而不是ѭ9会破坏我的兴趣。尴尬,但只是对他人的警告。
另外,如果您只是打开控制台并从上方粘贴三行JavaScript,则可能无法正常工作-除非您位于特殊页面(例如“新标签页”,扩展选项页面或您猜对了,是扩展程序背景页面。我不确定为什么会这样,但是Chrome可能会限制谁可以注入音频内容并进行播放。我不知道为什么会这样,还是有意还是无意。我想这只是使用HTML5的另一个警告。
,好吧,您不需要附加子级,而可以从后台页面执行:
var audio = new Audio(url);
audio.load();
audio.play();
那应该起作用,将其加载到JavaScript中,然后它将播放。
,问题是您无法通过内容脚本加载音频。但是,这可以通过使用背景页面来实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。