为什么收到的每条新消息都没有播放声音文件?

时间:2016-04-20 19:03:01

标签: javascript php algorithm

我使用PHP,JavaScript和Ajax创建了一个messenger Web应用程序。现在,我希望在用户收到的每条消息上播放声音。为此,我使用了这个算法:

var sound1="";
var sound2="";
$(document).ready(function(){

    var soundvar=setInterval(soundFunc, 800);

    function soundFunc()
    {
       var chatattr4=$(".chatwindow").css("visibility");

       if(chatattr4=="visible")
       {
            sound1=$("#conversation #receivermessage").last().text();
            var soundvar2=setTimeout(soundFunc2, 700);
            function soundFunc2()
            {
                sound2=$("#conversation #receivermessage").last().text();
            }
        }

        var soundvar3=setTimeout(soundFunc3, 750);

        function soundFunc3()
        {
            if(sound1!=sound2)
            {
                var audio = new Audio('fb.mp3');
                audio.play();
            }
        }
    }

});

所以我正在做的是检查两个不同 setTimeout 中最后收到的消息的每一秒。如果不同,则播放声音。它的工作几乎没问题,但有时声音没有播放。 (如果您收到的消息太快,则收到的每条消息都不会播放声音,这是其他情况,我没有问题)。我不认为浏览器或声音有任何问题。但我认为这个算法存在问题。我不想使用任何其他算法。

可以修改/改进/修复此算法以使其更好地运行吗? (准确度为95-99%)。

0 个答案:

没有答案