Cordova Media延迟播放顺序音频

时间:2018-07-26 19:07:07

标签: javascript android cordova settimeout cordova-media-plugin

我正在尝试创建一个可以依次播放3个音频文件的功能,但是这变成了一场噩梦。如果我只是加载文件并在函数中播放,则音频会相互重叠,因此我试图创建setTimeout以等待1秒(这是音频的持续时间),然后加载并播放下一个文件。 它一见钟情(第一次播放),但如果我运行此功能超过5次(按播放按钮),它就会开始出现故障,不再播放所有3种音频。有时,它只会先播放,然后再停止播放,我必须关闭该应用程序,然后重新打开才能再次使用。

在这种情况下,我不知道如何使用Promise,因此Im使用setTimeout。 有人可以帮助我吗?

function playfiles(a,b,c){
  document.getElementById('TREINOplay').disabled = true
  mediaPlay(a)
  setTimeout(function(){
    mediaPlay(b)
  }, 1000);
  setTimeout(function(){
    mediaPlay(c)
  }, 2000);
  setTimeout(function(){
    document.getElementById('TREINOplay').disabled = false
    my_media.release()
  }, 3000);

}

function mediaPlay(file){
  my_media = new Media(getMediaURL(file),function () {},function (err) { window.alert("playAudio():Audio Error: " + err)})
  my_media.play();
  console.log(file);
}

0 个答案:

没有答案