2017-10-29 105 views
0

我正在開發一個網站,它的核心功能之一是播放音樂。它可以在除Safari之外的任何瀏覽器上完美地工作。經過數小時的調查,我發現了Safari中的一個設置,防止網站自動播放媒體。如何繞過Safari自動播放塊

一旦我禁用了此功能(所以我允許自動播放媒體),音樂也在Safari上完美播放。

我現在需要發現一種繞過Safari自動播放媒體塊的方法,因爲它的默認設置。我試着用google搜索,但像我這樣的任何問題一直沒有得到答覆,至少從我發現的問題來看。

我知道這是可以解決的,因爲許多熱門網站(即Netflix,Youtube,Soundcloud,Spotify等)都可以在Safari上完美運行。

任何幫助將是偉大的,謝謝!

+0

你使用視頻標籤? –

+0

@RohitasBehera我正在使用音頻標籤。 – Nicster15

+0

沒有....它就像騎着默認屬性的鉻&mozilla ....就像你不能使[下載](https://www.w3schools.com/tags/att_a_download.asp)屬性工作IE10及更低版本......同樣適用於safari ..做一個異常處理而不是 –

回答

0

這是在Safari 11.用戶的便利性和舒適實施的一項新功能雖然更多的是停止從自動播放廣告的網站在圖書館的中間或中斷用戶的音樂,它肯定會在網站的方式獲得和你一樣。

我會建議不要試圖繞過它,因爲你可能不能。相反,請檢測您的訪問者是否使用Safari,並顯示一個上下文彈出窗口,向他們解釋如何在您的網站上啓用自動播放媒體。這會讓您的用戶完全控制他們的瀏覽體驗。

+0

嘿,謝謝你的詳細回覆:我肯定會這樣做的,儘管字面上99%的站點需要自動播放,所以我會至少在花費一些時間試圖解決問題之前,先選擇一種方法,甚至不讓用戶在做我們要求的事情之前查看網站。你確定沒有解決方案嗎?如果是的話,所有這些大網站如何做呢? – Nicster15

+0

YouTube如何傳遞這些功能? Safari具有三個自動播放選項的網站首選項:允許所有自動播放,停止媒體與聲音,從不自動播放。 Youtube的默認設置是允許全部自動播放。 YouTube如何實現這一目標? – poletn23

0

是啊,如果如果傳入的請求從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(); 
倒不如由jono..and說,而檢測到您的網站不阻止Safari瀏覽器的默認

如果(isSafari ==真) //做你的事替代

+0

有沒有辦法檢查safari版本(因爲它的11+阻止自動播放)。或者更好看看他們是否啓用了該設置? – Nicster15

+0

**你可以在[link](https://www.w3schools.com/tags/tag_audio.asp) –

+0

** console.log(window.navigator)**將給你所有的信息檢查哪些網站支持音頻標籤如瀏覽器名稱** appName **,版本** appVersion **等 –