首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法检测responsiveVoice isPlaying()

无法检测responsiveVoice isPlaying()
EN

Stack Overflow用户
提问于 2015-01-11 09:28:15
回答 5查看 3.6K关注 0票数 1

http://responsivevoice.org上关于isPlaying()的信息不多。

以下是我尝试过的不起作用的东西。我没有得到console.log()

代码语言:javascript
复制
setInterval(function(){ // continuously check if the audio is being played
  if(responsiveVoice.isPlaying()){
    console.log('playing..');
  }, 
    100
);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://responsivevoice.org/responsivevoice/responsivevoice.js"></script>

<textarea id="text" cols="45" rows="3">Hello, world!</textarea>
 
<input 
  onclick="responsiveVoice.speak($('#text').val(),'US English Female');" 
  type="button" 
  value="Play" 
/>

如何检测音频是否正在播放?还有,有什么方法可以在音频播放完毕后得到回调吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-12 15:58:30

谢谢你使用ResponsiveVoice!

我们从v1.3.4开始将函数isPlaying()添加到ResponsiveVoice中,并更新了API文档。

您现在可以使用:

代码语言:javascript
复制
responsiveVoice.isPlaying() 

它既适用于本地SpeechSynthesis,也适用于回退音频TTS。

你可以在这里找到它:

http://code.responsivevoice.org/develop/1.3/responsivevoice.js (指向1.3.x周期中的最新版本)

另外,为了获得特定的版本:

http://code.responsivevoice.org/develop/1.3.4/responsivevoice.js

票数 1
EN

Stack Overflow用户

发布于 2015-03-06 02:48:41

他们实际上使用的是语音API的window.speechSynthesis对象。所以您可以检查它的playing布尔值。

代码语言:javascript
复制
//Their code
  var voicelist = responsiveVoice.getVoices();

  var vselect = $("#voiceselection");

  $.each(voicelist, function() {
    vselect.append($("<option />").val(this.name).text(this.name));
  });

// Yours
  $('#isPlaying').on('click', function() {
    $('#r').text(window.speechSynthesis.speaking)
  })
代码语言:javascript
复制
<script src="http://responsivevoice.org/responsivevoice/responsivevoice.js"></script>
<script src="http://code.jquery.com/jquery-git2.js"></script>

<textarea id="text" cols="45" rows="3">Hello world this is some text to say</textarea>

<select id="voiceselection"></select>

<input onclick="responsiveVoice.speak($('#text').val(),$('#voiceselection').val());" type="button" value="Play" />
<br>
<button id="isPlaying">Playing:</button>
<p id="r">?</p>

票数 2
EN

Stack Overflow用户

发布于 2015-01-11 09:53:25

Audio标记具有paused属性。如果它没有暂停,那么它就在播放。所以:

代码语言:javascript
复制
function isPlaying(audelem) { 
      return !audelem.paused; 
}

$('audio').on('play ended',function() { 
    setInterval(function(){
        if(isPlaying(this)){
           console.log('playing...');
        }
    }, 100);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27885616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档