javascript在自动播放后自动打开视频音量

mzaanser  于 2021-09-23  发布在  Java
关注(0)|答案(2)|浏览(437)

我正在编写一个在线心理学实验。参与者必须观看短片并记住一些信息。要分析数据,每个人都必须看同一部电影,因此如果人们暂停它,这将是一个问题。因此,我禁用了所有控件并自动播放视频。
在chrome上,仅当播放器开始静音时,此功能才起作用。所以我想在视频开始后自动打开声音。
我正在尝试使用以下html与视频托管在这里

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="user-scalable=no">
  </head>

  <body style="width: 1000px; height: 800px; background-color: grey;">

    <div class="container">
      <div id="video-player"></div>
    </div>
    <script src="https://muse.ai/static/js/embed-player.min.js"></script>

    <script>
      const player = MusePlayer({
        container:'#video-player',
        video: 'qhRjheS',
        width: 720,
        height: 480,
        autoplay: true,
        loop: true,
        volume: 0,
        style: 'no-controls',
        shortcuts: false,
        css: '*{pointer-events:none!important;}',
      });
      player.on('timeupdate', function(time) {player.setVolume(100)});
    </script>

  </body>
</html>

如果这一行是问题所在:

player.on('timeupdate', function(time) {player.setVolume(100)});

当视频运行时,这在控制台中工作,但如果将其放入脚本中,则会崩溃。
有人能想出办法自动打开声音吗?如果电影开始后有一点延迟,那就可以了。

v64noz0r

v64noz0r1#

作为一个实验(不是完整的解决方案),我会尝试以下方法:

setTimeout(() => player.on('timeupdate', () => player.setVolume(100)), 3000);

(我擅自更改了代码以使用箭头函数。)
我怀疑播放机没有立即准备好音量设置,需要一段时间才能完全设置并准备好。我不太熟悉museplayer,但我会看看文档,看看除了 'timeupdate' 事件,您希望在设置 'timeupdate' 事件

vkc1a9a2

vkc1a9a22#

感谢kshetline的输入。chrome阻止自动播放对我来说确实是个问题。但是,添加事件侦听器以在单击时启动电影是一种变通方法。我想autostart是不可能的,但这样一来,电影开始后,所有其他控件仍然处于禁用状态。

document.body.addEventListener("click", function () {
    player.play();
});

相关问题