amp-story视频在加载后立即取消静音,以确保默认情况下启用了声音

问题描述

通过查看this question中的答案并看到this PR,我了解了为什么认情况下amp-story是静音的。但我想在故事载入后立即取消静音。

也许通过调用右上角的声音按钮取消故事的静音功能?而不是单击“单击”,而是将其称为“加载”。

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的初学者)

谢谢

解决方法

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

要做此工作的唯一方法是在本机应用程序中,通过启用自动播放未静音的媒体而无需用户手势。 您需要(1)配置Web视图,并且(2)讲故事以使其媒体静音。

(1)配置网络视图(默认为阻止未静音的媒体播放)

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

总而言之,您要做的是:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...