2015-10-18 22 views
7

Ho un pannello di controllo per ristoranti e suona un suono di avviso quando viene dato un ordine. Il problema è che quando la scheda del pannello di controllo non è la scheda attiva in Chrome (è lo stesso anche per Firefox) il suono di avviso non viene riprodotto. Dopo aver fatto clic sulla scheda, riproduce l'audio.Riproduzione audio dalla scheda del browser INACTIVE

Vedo alcuni siti (chat di Facebook, avviso del server Cloudstats.me, ...) riprodurre l'audio anche se sono in una scheda inattiva, quindi qual è la soluzione per questo problema?

risposta

8

Una cosa simile mi è successa anche a me, stavamo cercando di giocare in un mercato quando il mercato azionario ha aperto e chiuso per la giornata. Il problema che abbiamo avuto è stato il tentativo di caricare l'mp3 e riprodurlo quando la condizione è soddisfatta. Quindi in origine avevo.

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); 

Spostando il carico di risorse per accadere il caricamento della pagina e poi basta chiamare l'Audio.play è risolto il problema

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) 

Browser limitano le risorse di carico quando una scheda è inattivo