如何绕过Safari自动播放块

时间:2017-10-29 06:27:46

标签: javascript html web safari media-player

我正在开发一个网站,其中一个核心功能是播放音乐。它在除Safari之外的任何浏览器上都能完美运行。经过数小时的调查后,我在Safari中发现了一个设置,阻止网站自动播放媒体。

一旦我禁用了此功能(因此我允许自动播放媒体),音乐也在Safari上完美播放。

我现在需要找到一种绕过Safari已实现的自动播放媒体块的方法,因为它是默认设置。我试着用谷歌搜索,但是像我这样的任何问题都没有得到答复,至少从我发现的问题来看。

我知道这是可以修复的,因为很多热门网站(即Netflix,Youtube,Soundcloud,Spotify等)都可以在Safari上完美运行。

任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:1)

这是在Safari 11中为用户提供方便和舒适而实现的新功能。虽然它更多的是在图书馆中间停止自动播放广告的网站或中断用户的音乐,但它肯定会妨碍网站的使用。你的。

我建议不要试图绕过它,因为你可能不能。相反,检测您的访问者是否正在使用Safari,并显示一个上下文弹出窗口,向他们解释如何在您的网站上启用自动播放媒体。这使您的用户可以完全控制他们的浏览体验。

答案 1 :(得分:0)

是的,最好不要像jono所说的那样阻止safari的默认值。而是在你的网站上检测是否来自Safari浏览器的传入请求

var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));

function GetBrowser()
{
    return  navigator ? navigator.userAgent.toLowerCase() : "safari";
}
var isSafari = GetBrowser();
  

if(isSafari == true)   //做你另类的事情