php - 我无法停止当前通过ajax调用在提供的网页上播放音频

标签 php jquery ajax audio

我设计了一个发布测验页面,所有页面均可按我的意愿进行。对于音频回合,我想播放所有玩家都会听到的声音。那个有效。但是,当我单击“停止”时,它将停止在我的浏览器实例中,而不是在播放器页面中。

我正在使用PHP从测验母版页生成的txt文件。使用ajax每秒读取这些文件,并在播放器页面上更改其输出时更改输出。我所有的代码都可以正常工作,甚至可以触发新的声音事件。但是,一旦音频事件在播放器浏览器中播放,我就无法停止它。
我的PHP正在创建文本文件-单击“停止”时为空白条目。当我更改文本文件时,会播放新的音频剪辑。
我尝试添加aud.stop();在通话开始时,但会阻止任何音频播放。


<script>
function updateq(){
    $.ajax({url: '<?php echo $baseurl."curquestion.txt"; ?>',  ifModified: true, success: function(result, status){
    if (status === 'success') { $('#cq').html(result); }
    }});
    $.ajax({url: '<?php echo $baseurl."playaudio.txt"; ?>',  ifModified: true, success: function(result, status){
    if (status === 'success') { var aud = new Audio(result);    aud.play();
    }
   }});
    setTimeout('updateq()',1000);
};
</script>
<script type="text/javascript">  
$(document).ready(
function() 
    {
     updateq();
    });
</script>

当我的playaudio.txt从有效的mp3文件名更改为“”时,我希望音频会停止。但是,一旦在播放器的网络浏览器中触发,一旦播放了音频文件,它将播放直到完成或直到页面刷新为止。加载网页时,音频事件似乎重叠。

最佳答案

我认为问题是范围。加载下一个音频时,播放音频的var不存在,因此您无法停止它。也许尝试这样的事情。

<script>
var lastAud = null;
function updateq(){
    $.ajax({url: '<?php echo $baseurl."curquestion.txt"; ?>',  ifModified: true, success: function(result, status){
    if (status === 'success') { $('#cq').html(result); }
    }});
    $.ajax({url: '<?php echo $baseurl."playaudio.txt"; ?>',  ifModified: true, success: function(result, status){
    if (status === 'success') {
      if(lastAud && lastAud.src != result) {
           location.reload();
      }

      aud = new Audio(result);
      aud.play();
      lastAud = aud;
    }
   }});
    setTimeout('updateq()',1000);
};
</script>
<script type="text/javascript">  
$(document).ready(
function() 
    {
     updateq();
    });
</script>

关于php - 我无法停止当前通过ajax调用在提供的网页上播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54675778/

相关文章:

php - 动态使用 setter 和 getter 的 symfony Doctrine

php - WordPress自研AMP - 编辑查询如果URL是homepage.com/amp即可获取头版帖子

php - 如何只打印这个echo的ID?

php - 如何在 Select 语句 laravel 5.1 中编写子查询?

javascript - 如何从 dom 选择器添加值?

javascript - 查找帖子中所有图像的图像 src url

javascript - 使用 jquery 和 xml 构建虚拟网页

php - 将数据从输入表单传递到 Laravel 中的 ajax

javascript - 将 jQuery.ajax 定义为方法

javascript - jQuery 自动完成与 Ajax 建议不返回