相关疑难解决方法(0)

console.log会阻止垃圾回收吗?

如果我有一个通常会被垃圾收集但已被记录到控制台的对象,它是否仍有资格进行垃圾回收?

(function(){
  var o = { foo: {} }; 
  console.log(o);
}())

// Can o be collected?
Run Code Online (Sandbox Code Playgroud)

如果是,是否有任何情况下写入控制台(使用其任何方法)会影响垃圾收集的资格?

编辑:我不相信它会影响基于在Chrome开发工具中观看堆的收集资格.但是,任何类型的写入控制台都会这样做吗?

javascript

18
推荐指数
1
解决办法
1026
查看次数

在Google Chrome中,SpeechSynthesis.speak(在Web Speech API中)会在几秒钟后停止

speak在Web Speech API中使用该功能时,在Chrome中,语音在几秒钟之后突然停止,在给予它的文本中间,在一个看似随机的地方(没有到达终点).这只发生在Chrome(适用于Firefox),在两台不同的计算机/系统上进行测试.

看看这个jsfiddle看/听:https://jsfiddle.net/fv9ochpq/

您可以看到SpeechSynthesis对象.speaking标志在停止讲话后保持打开(true).

我没有看到传递给话语的文本有任何记录限制.这是Google Chrome错误吗?顺便说一下,自2014年以来我就已经知道了这一点 - 当时我试图将语音功能添加到我制作的浏览器扩展中(那时它是可用于Chrome扩展的TTS API - 同样的事情也发生在那里),但最终还没有不要因为这个明显的错误而这样做.现在我想要克服这个问题 - 如果这是一个错误,我会感谢任何人指导我到最好的地方报告它.

编辑:它似乎在大约15秒后停止.每运行14秒添加一个间隔.resume()似乎"修复"了这个.请参阅:https ://jsfiddle.net/fv9ochpq/1/
但这是一个黑客攻击.

javascript google-chrome text-to-speech speech-synthesis webspeech-api

12
推荐指数
1
解决办法
1476
查看次数

chrome.tts.speak字符限制

我在我的扩展程序中使用Chrome的tts服务.根据chrome.tts文档:

文本的最大长度为32,768个字符.

但是,当我传递超过250个字符的字符串时,引擎将无法读取所有话语(它将停止在单词的中间读取它).我现在想知道这是一个错误还是这个设计.Web语音API具有类似于规范中描述的字符限制,并且其行为方式相同.

我想知道我做错了什么,或者它只取决于浏览器中的TTS引擎而我无法用它做任何事情?

google-chrome text-to-speech google-chrome-extension webspeech-api

6
推荐指数
1
解决办法
1270
查看次数

中文文本使用Web Speech API播放一次,但不是第二次

所以我使用修改后的脚本尝试从Web Speech API播放一些文本.

代码最初在这里:

Chrome语音合成,文本较长

这是我修改后的变体:

function googleSpeech(text, rate) {
    if (!reading) {
        speechSynthesis.cancel();
        if (timer) {
            clearInterval(timer);
        }
        let msg = new SpeechSynthesisUtterance();
        let voices = window.speechSynthesis.getVoices();
        msg.voice = voices[63];
        msg.voiceURI = 'native';
        msg.volume = 1; // 0 to 1
        msg.rate = rate; // 0.1 to 10
        msg.pitch = 1; //0 to 2
        msg.text = text;
        msg.lang = 'zh-CN';

        msg.onerror = function (e) {
            speechSynthesis.cancel();
            reading = false;
            clearInterval(timer);
        };

        msg.onpause = function (e) {
        };

        msg.onboundary = function …
Run Code Online (Sandbox Code Playgroud)

javascript webspeech-api

5
推荐指数
1
解决办法
305
查看次数