2015-10-18 56 views
7

我有一个餐厅的控制面板,它会在发出订单时播放警报声。问题在于,如果控制面板选项卡不是Chrome中的活动选项卡(对于Firefox也是如此),则不会播放警报声。点击标签后,播放声音。从INACTIVE浏览器选项卡播放声音

我看到一些网站(Facebook Chat,Cloudstats.me服务器警报,...)播放声音,即使它们处于非活动状态选项卡,那么该问题的解决方法是什么?

回答

8

也有类似的事情发生在我身上,我们试图在股市开盘并在当天关闭时播放市场时钟。我们遇到的问题是我们尝试加载mp3,然后在条件满足时播放它。原来我是这样的。

var bell; 

// Update the clock, countdown, and tooltips as needed. 
function updateClock() { 
    service.getMarketDate(function(data) { 

     if (data.soundMarketBell) { 
      if (!bell) { 
       bell = new Audio('/sounds/marketclock.mp3'); 
      } 
      bell.play(); 
     } 
    }); 
} 

var intervalId = $interval(updateClock, 1000); 

通过移动资源装载在页面加载发生,然后就调用它Audio.play固定的问题

var bell = new Audio('/sounds/marketclock.mp3'); 

// Update the clock, countdown, and tooltips as needed. 
function updateClock() { 
    service.getMarketDate(function(data) { 
     if (data.soundMarketBell) { 
      bell.play(); 
     } 
    }); 
} 

// check for a time update every second 
// to balance accuracy with performance 
var intervalId = $interval(updateClock, 1000) 

浏览器限制加载资源,当标签处于非活动状态