簡體   English   中英

我無法停止當前通過ajax調用在提供的網頁上播放音頻

[英]I cant stop currently playing audio on served webpages via ajax calls

我設計了一個發布測驗頁面,所有頁面均可按我的意願工作。 對於音頻回合,我想播放所有玩家都會聽到的聲音。 這樣可行。 但是,當我單擊“停止”時,它將停止在我的瀏覽器實例中,而不是在播放器頁面中。

我正在使用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文件名更改為“”時,我希望音頻會停止。 但是,一旦在播放器Web瀏覽器中觸發,一旦播放了音頻文件,它就會播放直到完成或直到頁面刷新為止。 加載網頁時,音頻事件似乎重疊。

我認為問題是范圍。 加載下一個音頻時,播放音頻的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM