我正在编写一个在线心理学实验。参与者必须看一部短片并记住一些信息。为了分析数据,每个人都必须看同一部电影,所以如果人们暂停它会有问题。因此,我禁用了所有控件并自动播放视频。
在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)});
当视频运行时,这在控制台中有效,但如果将其放入脚本中,则会崩溃。
有人能想办法自动打开音响吗?如果电影开始后有一个小的延迟,那也没关系。
作为一个实验(不是一个完整的解决方案(,我会尝试这样的东西:
setTimeout(() => player.on('timeupdate', () => player.setVolume(100)), 3000);
(我随意更改了您的代码以使用箭头功能。(
我怀疑玩家没有立即准备好设置音量,需要一段时间才能完全设置好并准备好出发。我并不特别熟悉MusePlayer,但我会查看文档,看看除了'timeupdate'
事件之外,是否还有其他事件,您希望在设置'timeupdate'
事件的侦听器之前先接收这些事件。
感谢ksetline的输入。chrome阻止自动播放对我来说确实是个问题。不过,添加一个事件侦听器以在单击时启动电影是一种解决方法。我想自动启动是不可能的,但这样一来,一旦电影开始,所有其他控件仍然处于禁用状态。
document.body.addEventListener("click", function () {
player.play();
});