javascript - aframe设置视频播放器大小

标签 javascript html5-video aframe

我使用 aframe.io 库来播放 360 度视频。我无法设置视频播放器的宽高比、高度和宽度。

   <a-scene id="scene" class="fullscreen" vr-mode-ui="enabled: false">
      <a-entity id="vr-camera" camera look-controls="reverseMouseDrag: true" wasd-controls-enabled="true"></a-entity>
      <a-assets>
        <video id="aframeVideo" crossorigin="anonymous" ></video>
      </a-assets>
      <a-videosphere src="#aframeVideo" rotation="0 180 0" segments-height=9 segments-width=16></a-videosphere>
    </a-scene>

我尝试通过 a-scene 标签和视频标签设置高度宽度,但这不起作用,就好像该设置没有效果一样。

然后我开始修改代码并设置 Canvas 的高度和宽度

onResize() {
        console.log('window resize');
        
        const vrCanvas = document.getElementsByClassName('a-canvas')[0];
        if (typeof vrCanvas !== 'undefined') {
          const vrContainerHeight = document.getElementById('vr-container').offsetHeight;
          const vrContainerWidth = document.getElementById('vr-container').offsetWidth;
          if (typeof vrContainerWidth !== 'undefined' && typeof vrContainerHeight !== 'undefined') {
           vrCanvas.style.height = vrContainerHeight + "px";
           vrCanvas.style.width = vrContainerWidth + "px";
          }
        }

但它扭曲了我的视频以及播放平移到视频右侧的初始位置。因此,我尝试将宽高比设置为 19:6,但更改了线段高度和线段宽度,但没有效果。

Want to set the height and width and 16:9 aspect ratio

如有任何建议,我们将不胜感激。我不知道是否应该调整相机、视频圈或场景,并且使用 Canvas 更改高度和宽度感觉就像黑客。提前致谢

帖子编辑:

  1. 关于视频播放器平移到素材的右侧。我通过旋转相机rotation="0 90 0"来修复它
  2. 尝试使用segments-height=9segments-width=16设置宽高比绝对是错误的,因为它会使视频倾斜(即直线看起来是锯齿形的)

最佳答案

当我“嵌入”场景并通过场景上的 JavaScript 设置宽度和高度时,我可以设置视频播放器大小并控制宽高比。

 onResize() {
        const aframebox = document.getElementsByClassName('aframebox')[0];
        if (typeof aframebox !== 'undefined') {
          aframebox.style.height =  myHeight;
          aframebox.style.width = myWidth; 
        }
      },
<a-scene class="aframebox" embedded class="fullscreen" vr-mode-ui="enabled: false">
      <a-entity id="vr-camera" camera look-controls="reverseMouseDrag: true" wasd-controls-enabled="true"></a-entity>
      <a-assets>
        <video id="aframeVideo" crossorigin="anonymous" ></video>
      </a-assets>
      <a-videosphere src="#aframeVideo" rotation="0 180 0"></a-videosphere>
    </a-scene>
    
    
    
    

关于javascript - aframe设置视频播放器大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47271460/

相关文章:

javascript - 停止/关闭由 navigator.mediaDevices.getUserMedia 打开的网络摄像头流

google-chrome - Firefox、Chrome、Safari 对于 MP4 HTML5 视频有灰色背景

aframe - 如何加载obj的纹理?

javascript - jQuery/Javascript : 2 function calls in line, 等待其他完成?

javascript - 获取字符串的所有组合

javascript - Firefox、ie7 和 ie6 无法使用此 java 脚本

javascript - A 帧动画框在特定区域随机移动

javascript - Gatsby:基于 window.innerWidth 行为不当使用react条件渲染

JavaScript 视频/音频中断事件

html - Aframe Sphere-Collider 碰撞触发功能