Firefox 66 将阻止自动播放声音视频和音频

当您点击链接或打开新的浏览器标签页时,可听见的视频或音频自动播放,难道不令人讨厌吗?

我们知道,未经请求的音量可能是网页用户分心和沮丧的主要来源。因此,我们正在改变 Firefox 处理播放有声媒体的方式。我们希望确保 Web 开发人员了解 Firefox 中的这个新的*自动播放阻止*功能。

从 Firefox 66 桌面版和 Firefox for Android 版本开始,Firefox 默认情况下将阻止可听见的音频和视频。我们只允许网站通过HTMLMediaElement API 在网页收到用户交互以启动音频后(例如,用户点击“播放”按钮)播放声音或视频。

在用户通过鼠标点击、可打印键按下或触摸事件与页面交互之前发生的任何播放都被视为*自动播放*,如果它可能是可听见的,将被阻止。

静音自动播放仍然允许。因此,脚本可以将“静音”属性设置为HTMLMediaElement 为 true,自动播放将起作用。

我们预计将在 2019 年 3 月 19 日的 Firefox 66 版本中推出默认情况下启用的可听见自动播放阻止功能,该版本计划于正式发布。在 Firefox for Android 中,这将用我们在 Firefox 桌面版中使用的相同行为替换现有的阻止自动播放实现。

在一些网站上,用户希望允许可听见的自动播放音频和视频。当 Firefox for Desktop 阻止自动播放音频或视频时,URL 栏中会出现一个图标。用户可以点击图标以访问网站信息面板,在该面板中,他们可以将该网站的“自动播放声音”权限从默认设置的“阻止”更改为“允许”。然后,Firefox 将允许该网站可听见地自动播放。这允许用户轻松地创建他们信任的可听见地自动播放的网站的白名单。

Firefox 通过用NotAllowedError 拒绝HTMLMediaElement.play() 返回的 promise 来表达被阻止的play() 调用 JavaScript。所有阻止自动播放的主要浏览器都通过此机制表达被阻止的播放。通常,当调用HTMLMediaElement.play() 时,对 Web 作者的建议是*不要假设*对play() 的调用总是会成功,并且始终处理play() 返回的 promise 被拒绝的情况。

如果您想避免可听见的播放被阻止,您应该只在点击或键盘事件 处理程序内播放媒体,或在移动设备上的触摸结束事件 中播放媒体。另一个要考虑的视频策略是静音自动播放,并向用户提供一个“取消静音”按钮。请注意,静音自动播放目前也在所有阻止自动播放媒体的主要浏览器中默认允许。

我们还允许网站在用户之前授予他们相机/麦克风权限的情况下可听见地自动播放,因此具有明确用户权限运行 WebRTC 的网站应该能够像今天一样继续工作。

目前,我们也正在努力阻止对Web 音频 内容的自动播放,但尚未确定最终的实现方案。我们预计将在 2019 年的某个时候发布默认情况下启用的自动播放 Web 音频内容阻止功能。我们会通知您!

关于 Chris Pearce

更多 Chris Pearce 的文章…


34 条评论

  1. Sam

    很棒的工作,非常感谢!

    2019 年 2 月 4 日 下午 10:50

  2. Ravan Asteris

    耶!

    当我点击一个链接时,它就开始播放,通常是一个响亮、不受欢迎的广告,我一直点击页面上的“关闭”。您为内容提供商提供了一项服务——现在我可能会停留在他们的页面上,而不是本能地关闭它。

    太棒了!

    – R

    2019 年 2 月 4 日 下午 11:12

  3. jasper

    谢谢!谢谢!这是一个非常需要的功能。

    2019 年 2 月 4 日 下午 12:17

  4. bahadir balban

    如果我们想为用户提供类似电视的体验,每次点击视频都会让人厌烦怎么办?

    以下是一个自动播放是默认首选和预期方式的示例:https://getbuzz.io/c/learning-expressjs/stories/Learn-how-to-develop-a-NodeJS-application-4007962439

    至少您可以添加一些“允许从该网站自动播放”选项吗?

    2019 年 2 月 4 日 下午 14:04

    1. Chris Pearce

      我们理解存在用户希望自动播放的有效用例。这就是为什么存在用户界面,用户可以在其中将他们希望能够自动播放的网站列入白名单。此功能的挑战之一是在减轻恼人程度和启用真正用例之间取得平衡。

      2019 年 2 月 6 日 下午 13:11

  5. Tony D

    请阻止所有自动播放音频、视频和 GIF,并使用播放按钮激活所需元素。现在许多网站都检测您的带宽,并用垃圾 A/V 填满所有管道。

    2019 年 2 月 4 日 下午 16:32

    1. Chris Pearce

      不幸的是,如果我们也阻止了不可听见的视频,网站会使用画布之类的 Web 技术绕过它,或者只显示一系列图像以近似播放视频,这会导致耗电。因此,允许不可听见的视频是“最不糟糕”的选择。注意:这不是一个假设的问题;我们的竞争对手之一在他们发布不可听见的自动播放视频阻止功能时观察到了这一点!

      2019 年 2 月 6 日 下午 13:09

      1. Geoff Hart

        虽然您的逻辑很合理,但它错过了 Tony D 和其他人提出的要点:Web 开发人员强迫我们容忍不必要的音频或视频,充其量是不酷的,而且可能也不太合乎道德。如果您想告诉我们开发需要时间,那么关注阻止他们努力的难度是有效且值得的,但这并不是一个好的最终回复。垃圾广告商和浏览器开发人员之间将永远存在一场军备竞赛。我们明白。垃圾广告商会尝试想出替代方案,这与我们的观点无关。它们阻塞带宽以及(在未来某个时间)可能使用此渠道来传播恶意软件是重点(有人说过“Flash”吗?)。请重新考虑,并提供一个选项来阻止*所有*自动播放选项。

        2019 年 2 月 6 日 下午 16:05

        1. Chris Pearce

          抱歉,已经证明,如果阻止不可听见的视频,广告商会找到一种方法来实现播放视频的效果。如果我们按照猫鼠游戏进行到底,最终我们将不得不禁用网络的所有交互部分,而这似乎付出了过高的代价。

          2019 年 2 月 12 日 下午 15:50

  6. Eloise

    “静音自动播放视频”将如何影响屏幕阅读器用户?

    2019 年 2 月 5 日 上午 03:16

    1. Chris Pearce

      我们已经向我们的无障碍专家咨询过这个问题,他们认为这是可以接受的。到目前为止,用于将网站添加到您允许自动播放的个人白名单中的用户界面尚不完全无障碍,但我们正在努力改进它。

      2019 年 2 月 12 日 下午 15:52

  7. NoName

    任何类型的媒体都不应该被允许自动播放。
    它是否静音或无声无关紧要,无论是音频还是有声视频,都不应该自动播放。

    2019 年 2 月 5 日 上午 08:29

    1. Chris Pearce

      不幸的是,如果我们也阻止了不可听见的视频,网站会使用画布之类的 Web 技术绕过它,或者只显示一系列图像以近似播放视频。这些技术不如简单地播放不可听见的视频省电,因此允许不可听见的视频是“最不糟糕”的选择。注意:这不是一个假设的问题;我们的竞争对手之一在他们发布不可听见的自动播放视频阻止功能时观察到了这一点!

      2019 年 2 月 6 日 上午 11:14

  8. Win Logan

    我喜欢 Firefox,但我讨厌网页打开时自动播放的视频,这导致我在几个月前切换到 Chrome。Chrome 在阻止视频方面并不完美,只是比没有好一点。感谢您在 Firefox 中修复了这个问题,当您在今年 3 月发布 Firefox 66 时,我一定会放弃谷歌 Chrome。

    2019 年 2 月 5 日 下午 15:05

  9. Painful Insight

    所以……它会阻止 YouTube 吗?我的意思是,YouTube 会自动播放视频……

    2019 年 2 月 5 日 下午 19:02

    1. Chris Pearce

      默认情况下,是的。与任何其他网站一样,YouTube 上的视频不会自动播放,除非您正在查看的页面收到过用户交互。用户可以通过点击 URL 栏中的“自动播放已阻止图标”将他们信任的自动播放网站添加到自己的白名单中。用户可以配置 Firefox 允许 YouTube(或任何其他网站)自动播放。

      2019 年 2 月 6 日 上午 11:10

  10. Andrew Inggs

    我想现在说已经太晚了,但请重新考虑。我看到艺术家说这种方法非常令人沮丧,这让他们想要从互联网上删除自己的艺术作品。

    一定有更不强硬的方法。

    2019 年 2 月 6 日 上午 11:10

    1. Chris Pearce

      我理解作者的沮丧,但我们的研究表明,绝大多数用户不希望可听见的自动播放。现在所有主流浏览器都在阻止自动播放,因此网站需要进行调整,并显示一个“开始”或“取消静音”按钮才能在所有浏览器上可靠地工作。

      2019 年 2 月 6 日 下午 13:16

      1. Norbert Süle

        我不希望。什么能阻止艺术家准备他们的艺术作品从用户交互开始?它只需要一次点击,对吧?

        2019 年 3 月 3 日 上午 06:43

        1. Chris Pearce

          一个页面需要一次交互来解除阻止该页面上的自动播放媒体。艺术家可能需要在他们的作品中添加一个“开始”按钮。

          2019 年 3 月 6 日 下午 13:31

  11. Lucs Lucs

    感谢您让世界变得更美好!

    2019 年 2 月 7 日 下午 06:44

  12. Dan Hyatt

    我理解并完全支持这种实现 *在没有明确或暗示地要求查看视频的情况下*。但举个例子,假设用户在一个网站上进行搜索,搜索结果返回一个可用视频列表。他们点击一个视频旁边的“播放”链接。这将打开一个带有视频的覆盖 iframe。对于许多托管视频的网站来说,这都是很标准的操作。除非我对实现有误解,否则他们将不得不点击 html 播放器上的播放按钮才能观看视频,即使他们已经明确请求播放视频。这意味着每次观看都需要点击两次。如果你观看超过 3 个视频,这很快就会变得非常烦人。

    2019 年 2 月 7 日 下午 08:12

    1. Chris Pearce

      在你的例子中,点击打开视频将被视为与文档交互,从而解除该标签的自动播放限制。因此,如果页面随后在文档中打开了一个 iframe,则该 iframe 中的内容将被允许自动播放,因为它的祖先文档(其父级)已发生用户交互。如果新文档是跨域的(很多子 iframe 中的视频都是跨域的),这也适用。

      然而,如果你的页面打开一个新窗口来播放视频,那么这个新窗口将不被视为发生过用户交互,并且在该窗口中自动播放起作用之前,需要一个新的用户手势。

      2019 年 2 月 12 日 下午 15:59

  13. Row

    终于!
    不知道为什么花了这么长时间,因为这已经是我多年来最大的互联网烦恼之一了。
    把音量调高观看一个视频,因为声音很小,然后一访问另一个网站,巨大的声音突然从耳机里传来,这让我非常生气,而且对人们的听觉健康毫无考虑。
    这个消息让我很开心 :)
    感谢你开发了这样的优秀功能!

    2019 年 2 月 7 日 下午 18:17

  14. Paul Polson

    我很高兴你会实施这个功能!

    2019 年 2 月 8 日 下午 06:45

  15. J Redhead

    嗯……我仍然不高兴 Firefox 会在一般情况下引入这个功能,因为它对游戏有负面影响(https://arstechnica.com/gaming/2018/05/chromes-autoplay-video-blocker-is-accidentally-killing-web-based-games/),但我想按网站选项在一定程度上缓解了这个问题,所以非常感谢你加入了这个功能!

    是否可以默认禁用自动声音屏蔽?

    2019 年 2 月 10 日 下午 14:11

    1. Chris Pearce

      目前我们计划默认屏蔽音频自动播放。

      2019 年 2 月 10 日 下午 17:00

  16. Adam Chace

    并非所有网页都是有广告的新闻网站。这些家长式的改变总是忽略基于 SaaS 的多媒体 Web 应用程序,并不断增加我们的工作难度。如果你一定要继续“保护”我们,请为我们的付费客户提供一种方法,让他们选择退出这些功能。

    2019 年 2 月 12 日 上午 10:09

    1. Chris Pearce

      用户可以点击 URL 栏中的“媒体被阻止”图标,访问 UI 以将网站列入白名单,允许其自动播放。上面博客文章中有一张 UI 截图。

      2019 年 2 月 12 日 下午 15:42

  17. Bananana

    应该有一个选择加入的解决方案来阻止所有自动播放,同时默认情况下自动阻止带声音的自动播放。

    这应该给我们一个机会在需要的时候关闭它,并且广告商不会变得疯狂并围绕这个功能进行变通。

    这是一个公平的折衷方案。(因此我不理解为什么 Mozilla 在不想与广告商玩猫捉老鼠游戏的情况下开始屏蔽跟踪器?!但这又是另一个故事了)

    2019 年 2 月 28 日 上午 08:50

    1. Chris Pearce

      你会很高兴听到,由于大众需求,我们将在我们的偏好菜单中添加一个复选框,允许用户禁用不可听见的自动播放。这个选项默认情况下将被禁用。

      2019 年 2 月 28 日 下午 12:17

      1. Bananana

        谢谢你!这正是我想听到的,也是我认为最好的折衷方案,因为它默认情况下是禁用的。希望这个功能像可听见的自动播放一样有一个白名单,那样就完美了。

        真的,谢谢你添加了这个功能。

        2019 年 2 月 28 日 下午 22:37

  18. Eric

    我对交互部分有一个问题。假设我在一个社交网络网站上,那里有一个包含视频和许多其他可点击内容的 feed。
    默认情况下,自动播放将被关闭(感谢你提供静音视频的选项!),但当我点击/交互页面时会发生什么,例如点击“喜欢”,“转发”,“播放单个视频”等等?从那时起,所有视频是否都可以在我向下滚动 feed 的时候自动开始播放音频?
    我的预期是,这些视频不会自动播放,即使我进行了这种交互。即使我播放了一个视频,我也不会希望所有视频都能够自动播放 :(

    2019 年 3 月 6 日 上午 06:30

    1. Chris Pearce

      是的,一旦你与页面交互,页面将被允许随意自动播放,直到你重新加载或关闭页面。

      如果我们要求视频只能在手势处理程序内播放,那么在您第一次与网站交互时,网站可能会创建一堆隐藏的视频,这些视频被允许在需要的时候自动播放。因此,这两种行为大体上是等效的,但对于网站作者来说,其中一种要简单得多。

      也就是说,如果自动播放视频继续在网络上造成困扰,我们可能会考虑一些方法,比如只允许视频在点击处理程序内播放。但是我们在那方面做的一切都需要仔细考虑。

      2019 年 3 月 6 日 下午 13:30

这篇文章的评论已关闭。