首页 > 解决方案 > 加载后立即取消静音 amp-story 视频,以确保默认启用声音

问题描述

通过查看这个问题的答案并看到这个 PR,我明白了为什么 amp-stories 默认是静音的。但是我想在故事加载后立即尝试取消静音。

也许通过点击右上角的声音按钮调用相同的函数来取消静音?不是在“点击”上,而是在“加载”上调用它。

amp-story-system-layer.js,这个函数initializeListeners_()初始化一切,如果我在我的页面上导入这些脚本,我猜这样的东西可以工作:

<script>
  window.addEventListener('load', function() {
    isMuted = false;
    this.storeService_.subscribe(
       StateProperty.MUTED_STATE,
       (isMuted) => {
         this.onMutedStateUpdate_(isMuted);
       },
       true
    );
  });
</script>

有任何想法吗?这是正确的方向吗?(我是 javascript 的初学者)

谢谢

标签: amp-htmlamp-storyamp-stories

解决方案


由于没有用户在 Web 上的手势,媒体无法播放声音,因此您无法在 Web 浏览器中构建此功能。如果您尝试取消媒体静音,播放将失败。

完成这项工作的唯一方法是在本机应用程序中,通过启用自动播放非静音媒体而不需要用户手势。您需要 (1) 配置 webview,以及 (2) 讲述故事以取消其媒体静音。

(1)配置webview(默认是阻止非静音媒体播放)

(2) 讲述故事以取消其媒体静音 您需要使用开源的 Story Web Player,如下所述:https ://github.com/ampproject/amphtml/issues/28416 然后您可以player.unmute()为每个 Story 做。

总之,你想要做的是:

  • 在网络浏览器中是不可能的
  • 如果故事在已正确配置为自动播放未静音媒体的本机 web 视图中呈现,则可以使用 Web 播放器取消静音故事

推荐阅读