为什么我的视频和图片没有显示?

Why are my videos and images not showing up?

我在 AWS S3 或 Internet 上的某处有图像或视频。

我尝试通过直接引用图像路径将纹理应用于框:

<a-scene>
  <a-box src="https://blah.com/sometexture.png"></a-box>
</a-scene>

但是什么也没有出现。我收到一些关于无图像和 CORS 的控制台错误。

With A-Frame 0.3.0, you no longer need to manually specify crossorigin. It will automatically be set on assets that require CORS.

https://aframe.io/faq/#why-does-my-asset-e-g-image-video-model-not-loading

一般来说,问题是由于 CORS。因为所有资产都是通过 XHR 获取的,所以您需要在您的资产上启用允许 CORS headers。如果您从 S3 服务,这很常见。启用 CORS 后,您需要在资产上设置 crossorigin 标志:

<a-scene>
  <a-assets>
    <img id="texture" crossorigin src="https://blah.com/sometexture.png">
    <video id="texture2" crossorigin src="https://blah.com/sometexture.mp4">
  </a-assets>

  <a-box src="#texture"></a-box>
  <a-video src="#texture2"></a-video>
</a-scene>

我们有 UploadCare 提供的免费上传器。目前已关闭,但稍后您可以在这里上传并免费获得 CORSed 资产 https://aframe.io/aframe/examples/_uploader/

在 iOS Safari 上,如果图像仍然无法加载,您可能之前在没有 crossorigin 的情况下加载了它并且它被缓存了。尝试清除浏览器缓存。