如何在setinterval中播放一次HTML5音频

时间:2016-03-22 07:16:47

标签: javascript jquery html5 audio

来自How can we show recent notifications in jQuery/php/mySQL? update

的问题

所以我尝试做一个小通知系统,通知用户将新行添加到数据库的位置,最后我设法显示通知一次。我现在的问题是音频,一般来说,如果我写的代码是“好的”或者我应该改变一些东西。 音频:我希望每次收到通知时都会播放声音,但它会在开头播放一次然后,当我收到通知时它不起作用。我尝试添加一个loopcounter,重置它并检查对象是否为空,但它不起作用。如何处理音频的任何建议或良好做法?

代码:

    $.ajaxSetup ({  
        cache: false  
    });  
    var loopLimit = 1;
    var loopCounter = 0;
    setInterval(function(){
        $.getJSON('fetchResults.php', function(data) {
            $("#loadingDiv").show();
            $('#noti-box').empty();
            $("#notificationTitle").empty();

            //CHECKING IF EMPTY
            if(jQuery.isEmptyObject(data)){
                //this doesn't work, it goes to else.
                console.log("there is no data");
            }else{
                console.log(data);
                if (loopCounter < loopLimit){
                    var sound = $("#notification")[0];
                    sound.currentTime = 0;
                    sound.load();
                    sound.play();
                    loopCounter++;
                }
                $.each(data.vormid, function(i, vormid) {
                    $("#noti-box").append('<div class="alert alert-info"><button id='+data.vormid[i].ravim_id+' data-dismiss="alert" class="close close-sm" type="button"><i class="fa fa-times"></i></button>New form filled out by Dr. <b>'+data.vormid[i].arsti_eesnimi+' '+data.vormid[i].arsti_perekonnanimi+' </b> at '+data.vormid[i].date_created+'</div>'); 
                    var id= $(".alert.alert-info").val();
                    $("#notificationTitle").append('<li style="font-size: 14px; padding: 0; margin: 0 0 10px 10px; color: #666666;" >New form filled out by Dr. '+data.vormid[i].arsti_eesnimi+' '+data.vormid[i].arsti_perekonnanimi+'</li>');
                    $(".close").on('click', function () {
                        var ravim_id = $(this).attr('id'); 
                        $.ajax({
                            type: "POST",
                            url:'updateResults.php',
                            data:"ravim_id=" + ravim_id,
                            success:function(data){
                                console.log("success");
                            },error: function(data){
                                console.log("not saved");
                            } 
                        });
                    });
                });
            }
            $("#loadingDiv").fadeOut("slow");
        });
    }, 5000);

0 个答案:

没有答案