SpeechSynthesis API onend callback funktioniert nicht

Ich bin mit dem Speech Synthesis API auf Google Chrome v34.0.1847.131. Die API-Implementierung in Chrome ab v33.

Text-to-speech funktioniert zum größten Teil, außer wenn die Zuordnung einer Rückruf onend. Zum Beispiel, den folgenden code:

var message = window.SpeechSynthesisUtterance("Hello world!");
message.onend = function(event) {
    console.log('Finished in ' + event.elapsedTime + ' seconds.');
};
window.speechSynthesis.speak(message);

wird manchmal rufen onend und manchmal nicht nennen. Das timing scheint zu sein, völlig aus. Wenn es nicht genannt, die gedruckt elapsedTime ist immer eine gewisse Epoche Zeit wie 1399237888.

  • nur weil die specs sind geschrieben, w3,..., bedeutet nicht, Sie funktionieren oder funktionieren genau wie, dass in allen Browsern vor allem, wenn Sie neu sind und experimentellen wie speechsynthesis..nicht, dass diese Fähigkeit ist eine Art technologische Durchbruch, aber es ist erste mal gebracht werden, um Browsern.
  • Ich überprüfte, was Sie Taten, und ja das problem ist...für mich auf end-Ereignis noch nicht ausgelöst, auch einmal...und onstart findet manchmal auch.
  • Vielen Dank für die überprüfung. Es ist ermutigend zu sehen, jemand anderes mit diesem Problem. Ich denke, dies wäre nur eine halbgare Umsetzung, so dass diese Frage möglicherweise nicht beantworten.
  • check this out...aus irgendeinem seltsamen Grund, wenn Sie sich aus der äußerung Objekt message dann funktioniert es einwandfrei. 😀 jsfiddle.net/QYw6b
  • Wow, das ist interessant. Die event.elapsedTime ist immer noch Quatsch, aber onend scheint zu brennen, die sich jeden einzelnen Zeit.
  • in der Tat, ich denke, dass problem ist, das aufrufen der sprechen-Funktion sofort nach dem deklarieren message-Objekt ist das problem..wenn man nur ` setTimeout(function(){speechSynthesis.sprechen(u);},100); " es funktioniert...oder Angriff sprechen-Funktion click-Ereignis funktioniert es auch.
  • setTimeout(function(){speechSynthesis.speak(u);},1); funktioniert so gut und ist nicht zu unterscheidend von nur nannte es gerade. Scheint, dass die API nur mag Leben in einem callback. Würde gerne etwas mehr Einblick, warum das so ist, Verhalten wir beobachten, aber wohl nur die Googler wissen. Wenn Sie möchten, können Sie schreiben, eine Antwort auf diese Frage mit den Informationen, die Sie bereitgestellt haben, und ich gebe es Ihr Verdienst 🙂
  • ich bin auch in der Lage, die Zeit
  • Ich sehe immer noch diese auf chrome v46 für Windows. Ich erinnere mich nicht, es passiert auf Chrome für android.

InformationsquelleAutor huu | 2014-05-06
Schreibe einen Kommentar