为 Text-To-Speech 和 Streamlabs 改编 javascript 代码
Adapting a javascript code for Text-To-Speech and Streamlabs
我正在从 streamlabs.com 设置一个新的警告框,我想对其进行自定义:当有新的关注者时,会有关注者姓名的文本到规范!但我有时间学习 javascript 或任何其他语言。
我找到了这个 https://codepen.io/sgestrella/pen/MxJLXm, which is near what I want, but when I copy/paste the code into https://streamlabs.com/dashboard#/alertbox,但没有用!所以我想我必须更改一些代码,但我不知道如何
代码:
<div id="wrapper">
<textarea id="txtFld">I love the sound of my computer-generated voice.</textarea>
<div>
<button type="button" id="speakBtn">Speak</button>
</div>
</div>
<div id="txtFld">{userMessage}</div>
<div>
<button type="button" id="speakBtn">Speak</button>
</div>
let speakBtn, txtFld;
function init(){
speakBtn = qs("#speakBtn");
txtFld = qs("#txtFld");
speakBtn.addEventListener("click",talk,false);
if (!window.speechSynthesis) {
speakBtn.disabled = true;
qs("#warning").style.display = "block";
}
}
function talk(){
let u = new SpeechSynthesisUtterance();
u.text = txtFld.value;
speechSynthesis.speak(u);
}
// Reusable utility functions
function qs(selectorText){
//saves lots of typing for those who eschew Jquery
return document.querySelector(selectorText);
}
document.addEventListener('DOMContentLoaded', function (e) {
try {init();} catch (error){
console.log("Data didn't load", error);}
});
我希望代码在我 运行 测试时自行启动,但实际上它什么也没做。
首先请记住,您不能对多个元素使用相同的 ID,因为 ID 是唯一的。
所以改变这一行:
<div id="txtFld">{userMessage}</div>
关于你的问题:
为了触发 div textContent 更改,您应该阅读 。
现在,如果我们将它们组合在一起,我们将得到类似的东西:
<div id="example"></div>
<script>
window.addEventListener('load', function () {
var element = document.getElementById('example');
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var observer = new MutationObserver(talk);
observer.observe(element, {
childList: true
});
setTimeout(function(){
element.textContent = 'Hello World!';
}, 1000);
setTimeout(function(){
element.textContent = 'Hello Space!';
}, 2000);
function talk(){
let u = new SpeechSynthesisUtterance();
u.text = element.textContent;
speechSynthesis.speak(u);
}
});
</script>
你可以阅读更多here
希望这能让你走上正确的道路,祝你好运!
我做了一个代码笔,你可以玩 here。
我正在从 streamlabs.com 设置一个新的警告框,我想对其进行自定义:当有新的关注者时,会有关注者姓名的文本到规范!但我有时间学习 javascript 或任何其他语言。
我找到了这个 https://codepen.io/sgestrella/pen/MxJLXm, which is near what I want, but when I copy/paste the code into https://streamlabs.com/dashboard#/alertbox,但没有用!所以我想我必须更改一些代码,但我不知道如何
代码:
<div id="wrapper">
<textarea id="txtFld">I love the sound of my computer-generated voice.</textarea>
<div>
<button type="button" id="speakBtn">Speak</button>
</div>
</div>
<div id="txtFld">{userMessage}</div>
<div>
<button type="button" id="speakBtn">Speak</button>
</div>
let speakBtn, txtFld;
function init(){
speakBtn = qs("#speakBtn");
txtFld = qs("#txtFld");
speakBtn.addEventListener("click",talk,false);
if (!window.speechSynthesis) {
speakBtn.disabled = true;
qs("#warning").style.display = "block";
}
}
function talk(){
let u = new SpeechSynthesisUtterance();
u.text = txtFld.value;
speechSynthesis.speak(u);
}
// Reusable utility functions
function qs(selectorText){
//saves lots of typing for those who eschew Jquery
return document.querySelector(selectorText);
}
document.addEventListener('DOMContentLoaded', function (e) {
try {init();} catch (error){
console.log("Data didn't load", error);}
});
我希望代码在我 运行 测试时自行启动,但实际上它什么也没做。
首先请记住,您不能对多个元素使用相同的 ID,因为 ID 是唯一的。 所以改变这一行:
<div id="txtFld">{userMessage}</div>
关于你的问题:
为了触发 div textContent 更改,您应该阅读
<div id="example"></div>
<script>
window.addEventListener('load', function () {
var element = document.getElementById('example');
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var observer = new MutationObserver(talk);
observer.observe(element, {
childList: true
});
setTimeout(function(){
element.textContent = 'Hello World!';
}, 1000);
setTimeout(function(){
element.textContent = 'Hello Space!';
}, 2000);
function talk(){
let u = new SpeechSynthesisUtterance();
u.text = element.textContent;
speechSynthesis.speak(u);
}
});
</script>
你可以阅读更多here
希望这能让你走上正确的道路,祝你好运!
我做了一个代码笔,你可以玩 here。