Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何停止每次ajax调用的音频?_Javascript_Codeigniter - Fatal编程技术网

Javascript 如何停止每次ajax调用的音频?

Javascript 如何停止每次ajax调用的音频?,javascript,codeigniter,Javascript,Codeigniter,我在通过javascript处理音频播放时遇到了一个问题,因为有时它会随机播放无法停止但需要破坏会话的内容。ajax上的当前实现每1秒调用一次 我也使用cookies来保存会话,但它不会超过4kb,因为它会附加我的数据来生成音频 我的代码: function refreshPage(){ var transaction_id = ''; var form_data = { transaction_id : transaction_id, ca

我在通过javascript处理音频播放时遇到了一个问题,因为有时它会随机播放无法停止但需要破坏会话的内容。ajax上的当前实现每1秒调用一次

我也使用cookies来保存会话,但它不会超过4kb,因为它会附加我的数据来生成音频

我的代码:

function refreshPage(){

    var transaction_id = '';
    var form_data = { 
        transaction_id  : transaction_id,
        called_ids : calledIds
    }
    var base_url = $j('base').attr("href");
    var link = "<?php echo getUrl('display/refreshPage');?>";
    $j.ajax({
        url: link,
        type: 'POST',
        data: form_data,
        dataType: 'json',
        success: function(msg){
            console.log(msg);
            if(msg.reply == 'success'){
                if(msg.html != lastHtml){

                    $j('#queue_board').html(msg.html);
                    lastHtml = msg.html;

                }

                if(msg.play_sound == "yes"){
                    var audio = new Audio('<?php echo getSkinCommonUrl('audio/doorbell-2.mp3'); ?>');
                    if (audio.paused) {
            audio.play();
          }else{
            audio.pause();
            audio.currentTime = 0
          }


                }


                calledIds = msg.called_ids;

            }
            setTimeout(refreshPage, 1000);
        },
        error: function(a,b){
            setTimeout(refreshPage, 2000);
        }

    }); 
}

您只能调用音频的一个实例,然后在需要时播放它

在函数刷新页面上方的代码顶部:

var audio = new Audio('<?php echo getSkinCommonUrl('audio/doorbell-2.mp3'); ?>');

我认为你不需要关于音频是否暂停等的其他条件。。。您可以在暂停后立即播放。

您好,先生,我还没有尝试过……如果我实现了该场景,会有什么影响?有很多音频实例。您需要1个以上吗?不需要,因为它是带有声音通知的显示器。这是另一个代码参考Ha,那么,为什么不在消息或号码发生变化时才调用您的铃声呢?你不需要每次都创建一个新的音频。你有样本吗?杰克曼:你说得对
if(msg.reply == 'success'){
            if(msg.html != lastHtml){

                $j('#queue_board').html(msg.html);
                lastHtml = msg.html;

            }

            if(msg.play_sound == "yes"){
               audio.pause();
               audio.play();
            }