我在AWS S3上或互联网上的某个地方有图像或视频。
我尝试通过直接引用图像路径将纹理应用于框:
<a-scene>
<a-box src="https://blah.com/sometexture.png"></a-box>
</a-scene>
但没有出现。我得到一些关于没有图像和CORS的控制台错误。
答案 0 :(得分:0)
使用A-Frame 0.3.0,您不再需要手动指定crossorigin。它将自动设置在需要CORS的资产上。
https://aframe.io/faq/#why-does-my-asset-e-g-image-video-model-not-loading
一般来说,问题归咎于CORS。由于所有资产都是通过XHR获取的,因此您需要在资产上启用允许CORS标头。如果您从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
并且已缓存。尝试清除浏览器缓存。