为啥我的视频在 ARJS 中只播放声音而没有视频?

Posted

技术标签:

【中文标题】为啥我的视频在 ARJS 中只播放声音而没有视频?【英文标题】:Why does my video only play sound and no video with ARJS?为什么我的视频在 ARJS 中只播放声音而没有视频? 【发布时间】:2022-01-03 21:21:25 【问题描述】:

我正在使用 ARJS 构建增强现实应用。我正在使用图像作为标记,它似乎正在工作。目标是在图像跟踪器检测到正确的图像时播放视频,但是它只播放音频而不是整个视频。

index.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <link rel="stylesheet" href="css/styles.css">
  <script src="./js/image-tracker/aframe-master.min.js"></script>
  <script src="./js/image-tracker/aframe-ar-nft.js"></script>
  <title>Test</title>
  <script>
    AFRAME.registerComponent('controller', 
        init: function() 
          this.toggle = false;
          this.video = document.querySelector('#video');
          this.video.pause();
        ,

        tick: function() 
          if (this.el.object3D.visible === true) 
            if (!this.toggle) 
              this.toggle = true;
              this.video.play();
            
           else 
            this.toggle = false;
            this.video.pause();
          
        
      )
  </script>
</head>

<body>
  <div class="arjs-loader">
    <div>Loading, please wait...</div>
  </div>
  <a-scene
    vr-mode-ui="enabled: false;"
    renderer="logarithmicDepthBuffer: true;"
    embedded
    arjs="trackingMethod: best; sourceType: webcam;debugUIEnabled: false;"
  >
    <a-assets>
      <video id="video" src="http://localhost:5000/assets/animation.mp4" webkit-playsinline playsinline></video>
    </a-assets>

    <a-nft
      controller
      type="nft"
      url="./image_descriptors/car"
      smooth="true"
      smoothCount="10"
      smoothTolerance="0.01"
      smoothThreshold="5"
    >
      <a-video
        
        
        position="200 0 -10"
        rotation="0 90 0"
        src="#video"
      ></a-video>
    </a-nft>
    <a-entity camera></a-entity>
  </a-scene>
</body>
</html>

【问题讨论】:

视频已暂停,或不在任何地方? 您好,视频正在从我的本地节点快速服务器提供。正如您在上面的脚本中看到的那样,当我指向图像时会复制视频,当我停下来指向图像时会暂停。这个逻辑是有效的。我可以听视频的音频,但看不到视频。 如果你撞墙了,我有几个想法 - 1)在同一位置放置一个盒子/球体并检查它是否可见(即使它也是小到看不到,或者在相机视图之外)2)移动设备可能需要用户交互才能播放视频。 你也可以用一个普通的标记/香草a-frame来试一试,以排除它是否与arjs有关 我只用场景和盒子创建了一个全新的项目。但是,当我放置一个 标记并抓住标记内的盒子时,它就停止了工作。似乎与位置有关。在标记之外,我必须放置一个位置“0 0 -3”才能看到该框。 【参考方案1】:

可能有多种原因,以下是其中的一些:

    确保没有控制台错误并且场景正确加载(您的沙盒给了我out of memory!!! 问题,还有一些 CORS 问题)。

    确保视频放置在标记的顶部。我会使用一个超大的盒子(或检查器)来找出物品在哪里,并调整位置/比例。

我已将您的 car.jpg 大小调整为 1024x1024 制作了 NFT 描述符,它似乎可以正常工作 link to the forked sandbox with new descriptors :

【讨论】:

以上是关于为啥我的视频在 ARJS 中只播放声音而没有视频?的主要内容,如果未能解决你的问题,请参考以下文章

为啥手机视频只有声音没有画面

为啥百度云下载的视频没有声音?

我的电脑在网页中播放视频只有声音没有画面是怎么回事?

为啥网页视频只有声音没有画面?

就是我插着耳机,手机在放一首歌,录视频为啥不能将歌旳声音录进去

为啥苹果手机的视频播放不了?