【发布时间】:2021-05-07 23:12:42
【问题描述】:
我正在尝试让视频自动播放,但它不起作用,我不知道为什么。我遵循了指南并将视频设置为自动播放。视频在分屏查看实时站点时有效,但在新窗口中打开站点或通过链接访问时无效。
这是代码:https://glitch.com/edit/#!/vr-climate-change-memorial 如果有人知道出了什么问题,请告诉我。
【问题讨论】:
标签: aframe
我正在尝试让视频自动播放,但它不起作用,我不知道为什么。我遵循了指南并将视频设置为自动播放。视频在分屏查看实时站点时有效,但在新窗口中打开站点或通过链接访问时无效。
这是代码:https://glitch.com/edit/#!/vr-climate-change-memorial 如果有人知道出了什么问题,请告诉我。
【问题讨论】:
标签: aframe
id 中不应包含空格,( ) 中不应包含括号。我相信它不是无效的,但可能会导致问题发生在您的示例中。
我拍了这个:
<video id="debbiesymons (small).mp4" autoplay loop playsinline webkit-playsinline src="..."></video>
到:
<video id="debbiesymons_small.mp4" autoplay loop playsinline webkit-playsinline src="..."></video>
还有这个:
<a-video src="#debbiesymons (small).mp4" position="0 6 -200" scale="12.8 7.2 0"></a-video>
收件人:
<a-video src="#debbiesymons_small.mp4" position="0 6 -200" scale="12.8 7.2 0"></a-video>
现在页面加载时视频正在播放。
注意:在 iOS 上播放声音 - 在任何浏览器中 - 都需要物理用户交互。这是浏览器的限制,内部 A-Frame 事件(如融合光标)不算作交互。解决此问题的方法包括使用 Begin Experience 按钮来启动环境音乐,或使用 Howler.js 等库创建音频精灵。
在播放声音/视频之前,您需要与页面进行任何类型的交互。
一个简单的按钮来播放元素就可以了,您也可以将其作为起始页面。这不是优雅的解决方案,但适用于您的情况:
<a-scene background="color: #60860A" foo id="scene" style="display: none">
//...
</a-scene>
<script>
function startPlaying(event) {
document.getElementById("scene").style.display = "block";
document.getElementById("debbiesymons_small.mp4").play();
document.getElementById("sound").components.sound.stopSound();
document.getElementById("sound").components.sound.playSound();
event.target.style.display="none";
}
</script>
<input type="button" onclick="startPlaying(event)" style="width: 100px; height: 100px; position: fixed; top: 100px; left: 100px;">
【讨论】:
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. 这可能是问题所在。这意味着您需要在视频播放之前进行某种用户交互。这也可以解释为什么它可以在您与网站互动时分屏显示