新版Chrome是如何判斷哪個標籤頁在播放音頻的?
很多人在上網時,尤其是在開了很多標籤頁後,會被突然自動彈出播放的廣告頁面嚇一跳,甚至連繼續上網的心情都沒了。最近,Google 為了解決類似問題,在新版的Chrome 瀏覽器中推出了小圖標功能。若某個網頁正在調用音頻,Chrome 就能在標籤頁上標註一個小喇叭的圖標,以告訴用戶是這個頁面在播放音頻。
那麼,這個功能又是如何實現的?
黑客Mike Melanson 就在其個人網站上給出了他自己的答案。簡單來講,在Web 上有兩種將多媒體文件呈現給用戶的方法:利用Flash 等第三方插件,或者直接用HTML5 來在瀏覽器中播放原生的音頻或者視頻文件。當下,後者明顯是更流行的方法。通過HTML,內容提供者本質上是把瀏覽器變成了一個媒體播放器,而Chrome 只需告訴你哪個標籤頁在播放什麼內容。
但對於Flash 這類第三方插件來講,則完全不同。若五個標籤頁全都有Flash 插件在運行,那要如何才能知道是哪一個在發出聲音?這個棘手的問題直到最近才被Google 慢慢解決。 Google 最近逐步將網景公司早在上世紀90 年代發布的插件開發API 淘汰,在舊的模式下,音頻類文件只能獨立於瀏覽器進行播放。 Google 為了解決這一問題,引入了一個新的架構,即任何音頻文件的在線播放都需要通過瀏覽器進行播放,這樣一來Google 便能很輕易的知道哪個標籤頁在播放音頻了。這同時也解釋了為什麼這一功能沒能早點來到我們身邊:Google 需要一段時間來引入這種新架構。
當然,上述的解釋只是為了大部分讀者能夠大致了解這一技術問題。若你是喜歡刨根問底的極客,或者有技術上的疑問,可點擊Mike Melanson 的個人網站查閱更詳細更技術向的解釋,甚至和他交流一番。
[36氪原创文章,作者: patrick]