【问题标题】:How do I get video to auto-play in A-frame new window?如何让视频在 A 帧新窗口中自动播放?
【发布时间】:2021-05-07 23:12:42
【问题描述】:

我正在尝试让视频自动播放,但它不起作用,我不知道为什么。我遵循了指南并将视频设置为自动播放。视频在分屏查看实时站点时有效,但在新窗口中打开站点或通过链接访问时无效。

这是代码:https://glitch.com/edit/#!/vr-climate-change-memorial 如果有人知道出了什么问题,请告诉我。

【问题讨论】:

    标签: aframe


    【解决方案1】:

    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>

    现在页面加载时视频正在播放。

    AudioContext 不允许启动

    注意:在 iOS 上播放声音 - 在任何浏览器中 - 都需要物理用户交互。这是浏览器的限制,内部 A-Frame 事件(如融合光标)不算作交互。解决此问题的方法包括使用 Begin Experience 按钮来启动环境音乐,或使用 Howler.js 等库创建音频精灵。

    source

    在播放声音/视频之前,您需要与页面进行任何类型的交互。

    一个简单的按钮来播放元素就可以了,您也可以将其作为起始页面。这不是优雅的解决方案,但适用于您的情况:

    <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;">
    

    【讨论】:

    • 我做了这些更改,但问题还是一样。在新窗口中,视频仍显示为黑屏。我在 windows 上使用 chrome,也许这就是问题所在?
    • 我重新混合了您的故障并通过更改我写的内容使其工作。我也在windows上的chrome上。您在控制台中收到任何错误吗?
    • 我在控制台中看到类似这样的内容:The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. 这可能是问题所在。这意味着您需要在视频播放之前进行某种用户交互。这也可以解释为什么它可以在您与网站互动时分屏显示
    • 在我的控制台日志中这是红色的:Serving at 16957e4e128f:3000, 127.0.0.1:3000, 172.17.0.45:3000...
    • 我认为音频上下文可能是用于在后台播放的声音,但如果不是,那是否意味着视频的自动播放不起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2015-08-27
    • 1970-01-01
    • 2022-11-23
    • 2016-02-02
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多