新版Chrome是如何判断哪个标签页在播放音频的?
很多人在上网时,尤其是在开了很多标签页后,会被突然自动弹出播放的广告页面吓一跳,甚至连继续上网的心情都没了。最近,Google为了解决类似问题,在新版的Chrome浏览器中推出了小图标功能。若某个网页正在调用音频,Chrome就能在标签页上标注一个小喇叭的图标,以告诉用户是这个页面在播放音频。
那么,这个功能又是如何实现的?
黑客Mike Melanson就在其个人网站上给出了他自己的答案。简单来讲,在Web上有两种将多媒体文件呈现给用户的方法:利用Flash等第三方插件,或者直接用HTML5来在浏览器中播放原生的音频或者视频文件。当下,后者明显是更流行的方法。通过HTML,内容提供者本质上是把浏览器变成了一个媒体播放器,而Chrome只需告诉你哪个标签页在播放什么内容。
但对于Flash这类第三方插件来讲,则完全不同。若五个标签页全都有Flash插件在运行,那要如何才能知道是哪一个在发出声音?这个棘手的问题直到最近才被Google慢慢解决。Google最近逐步将网景公司早在上世纪90年代发布的插件开发API淘汰,在旧的模式下,音频类文件只能独立于浏览器进行播放。Google为了解决这一问题,引入了一个新的架构,即任何音频文件的在线播放都需要通过浏览器进行播放,这样一来Google便能很轻易的知道哪个标签页在播放音频了。这同时也解释了为什么这一功能没能早点来到我们身边:Google需要一段时间来引入这种新架构。
当然,上述的解释只是为了大部分读者能够大致了解这一技术问题。若你是喜欢刨根问底的极客,或者有技术上的疑问,可点击Mike Melanson的个人网站查阅更详细更技术向的解释,甚至和他交流一番。