JS:在非活动的OSX Safari选项卡中播放声音

时间:2018-03-14 10:26:41

标签: javascript safari howler.js

我有一个简单的计时器应用程序,允许用户启用滴答声 - 每秒一次滴答

我让它适用于主动& Chrome,Firefox和Edge 中的非活动标签。

我正在努力使用OSX Safari。无论我尝试什么,只要切换到另一个标签,它就会使声音静音。有趣的是,如果我分离标签并切换到另一个标签,它会静音。这可能是因为勾选标签不是直接可见的,但也没有隐藏。

我用的是什么:

使用setInterval(),因为浏览器倾向于休眠主线程。而不是那样,我使用简单的工人:

var worker = new Worker('/js/workers/IntervalWorker.js');
worker.onmessage = function (e) {
    playStuff();
};
worker.postMessage('1000');

IntervalWorker.js看起来像这样:

var interval = null;
onmessage = function(e) {
    interval = setInterval(function() {
        postMessage('');
    }, parseInt(e.data));
};

playStuff()使用咆哮库:

var snd = new Howl({
    src: [ '/blah.mp3' ],
    volume: 1.00,
});
snd.play();
// I have tried classic html5 audio tag, it makes no difference.
// Also please note that this is pseudo code,
// I DON'T actually create the Howl object every second

当标签本身处于非活动状态时,您是否有任何提示或黑客如何强制 OSX Safari 播放声音?

0 个答案:

没有答案