Jquery 只播放一次声音

Posted

技术标签:

【中文标题】Jquery 只播放一次声音【英文标题】:Jquery Play sound only once 【发布时间】:2014-09-04 14:34:29 【问题描述】:

当用户收到新消息时,我需要 jQuery 播放通知声音。这是我的代码,其中包含未读消息和声音的计数。问题是当用户收到一条新消息时,它每 0.1 秒播放一次声音,直到他阅读它。我只需要播放一次,当用户收到另一条消息时再播放一次。

    function pullNewMessageCount() 
                    var url = 'messenger/bubble.php';
                    $.ajax(
                        url: url,
                        dataType: 'html',
                        type: 'POST',
                        success: function(latestCount) 
                            setTimeout('pullNewMessageCount()', 200);
                            $('#bub').html(latestCount);
                            if (latestCount > 0)
                             
                                $('#bub').removeClass('hidden').addClass('bubble').addClass('animating');
playSound('message');
                             else if ((latestCount = $('#bub').html()) && (latestCount > 0)) 
                                $('#bub').removeClass('animating');                              
                             else if ((latestCount = '0') || (!latestCount)) 
                                $('#bub').removeClass('bubble').addClass('hidden');
                             else 
                                $('#bub').removeClass('bubble').addClass('hidden');
                            
                        ,
                        error: function(jqXHR, textStatus, errorThrown) 
                        
                    );
                

【问题讨论】:

playSound函数的定义是什么?函数 pullNewMessageCount() 是执行一次,还是每 0.1 秒执行一次? 每 0.1 秒。 function playSound(filename) document.getElementById("bub").innerHTML=''; 【参考方案1】:

需要存储 latestCount 的值,并且仅在 latestCount 小于当前计数时播放声音,而不是总是在 > 0 时播放。

当有新消息可用时,latestCount 将再次低于当前计数,导致声音再次播放。

【讨论】:

如何存储?我认为它会在每次调用函数时重置变量。 您可以将其存储在页面上的隐藏字段中: 并使用javascript分配和读取值。

以上是关于Jquery 只播放一次声音的主要内容,如果未能解决你的问题,请参考以下文章

Sound Pool 只播放一次声音

如果声音正在播放 jquery

UILocalNotification 声音每隔一段时间播放一次

c# winform 中自带播放系统的几种声音,如蜂鸣声,但是它只播放一次,怎...

SKAudioNode 播放声音一次

如何仅在一只耳朵中播放声音 i.s.使用音频单元一次向左或向右