A-Frame - 使用自定义(“a-sound”)源播放/暂停声音

2024-04-09

编辑2:这是工作代码。非常感谢 Piotr 的帮助,没有你们我不可能如此轻松地完成这件事。

sceneEl.querySelector('a-sound').setAttribute('sound', {src:url3}); 
      let playing = false;
      var el = document.querySelector('a-box');
      let audioEl = document.querySelector("a-sound");
      var audio = audioEl.components.sound;
      el.addEventListener('click', () => {
      if (!playing) {
      audio.playSound();
      } else {
      audio.stopSound();
      }
      playing = !playing;
      })


      } );
      request.send( null );
      }
      });

编辑:我已经从动态 URL(在我的 JSON 文件中)播放声音,但我似乎无法正确获取事件侦听器功能(用于在单击时播放/暂停)。

sceneEl.querySelector('a-sound').setAttribute('sound', {src:url3}); 
      let audioEl = document.querySelector("a-sound");
      let audio = audioEl.components.sound;
      sceneEl.querySelector('a-box').addEventListener('click', function () {
      if(!playing) {
          audio.play();
       } else {
          audio.pause();
          audio.currentTime = 0;
       }
       playing = !playing;
       });   
    } );
      request.send( null );
      }
      });

原文:我正在使用this https://stackoverflow.com/questions/47921013/play-sound-on-click-in-a-frameA-Frame 中的组件,但我希望从(“a-sound”)实体中的 src 播放声音,而不是从资源链接播放声音。原因是因为我从 JSON 数组动态加载声音文件,因此它们不存在于任何资产列表中。我已经加载了所有文件,但无法将此组件挂接到我加载的文件中sceneEl.querySelector('a-sound').setAttribute('sound', {src:url3});代码。我认为这只是一个小语法问题,但我不能 100% 确定。有人可以看一下这个并告诉我它是否可行吗?这是代码(与链接相同,除了 querySelector 中的(a-sound))。

       AFRAME.registerComponent('audiohandler', {
       init:function() {
       let playing = false;
       let audio = document.querySelector('a-sound');
       this.el.addEventListener('click', () => {
       if(!playing) {
          audio.play();
       } else {
          audio.pause();
          audio.currentTime = 0;
       }
       playing = !playing;
       });
       }
       })
    </script> 

使用<a-sound>你必须以不同的方式处理事情。

播放/停止声音应该在sound 成分 https://github.com/aframevr/aframe/blob/master/docs/components/sound.md。您需要通过以下方式访问它yourEntityName.components.sound并使用playSound() and stopSound()方法。

在我的上查看glitch https://glitch.com/edit/#!/smiling-armchair?path=index.html:34:7。我通过设置源setAttribute(),并制作一个播放/停止按钮。


My <a-sound> has a geometry to be a button, but You can make a <a-sound> entity, and use it like this:
let audioEl = document.querySelector("a-sound");
audioEl.setAttribute("src", "sourceURL");

let audio = audioEl.components.sound;
// play = audio.playSound();
// stop = audio.stopSound():

此外,节点未满载也存在很多问题。看看这个例子:

<a-entity component></a-entity>
<a-sound></a-sound>

如果组件试图获取对document.querySelector("a-sound").components.sound,它可能是未定义的。如果是这样,您应该尝试等到它发出loaded signal.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

A-Frame - 使用自定义(“a-sound”)源播放/暂停声音 的相关文章

  • 使用 JavaScript 格式化日期

    JavaScript 中的日期格式有问题 这是我的函数代码 originalDate 2016 03 02 09 12 14 989522 var d new Date originalDate month d getMonth 1 day
  • 在 JavaScript 函数中加载图像

    我有获取图像像素颜色的功能 function getImage imgsrc var img img src imgsrc var imageMap new Object img load function var canvas
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 如何在 google.maps.event.addListener 中使用它

    以下示例有效 但是当我尝试传递参数并使用this在该功能不起作用 Working google maps event addListener markers i click showInfoWindow function showInfoW
  • 如何将“X-Content-Type-Options: nosniff”添加到我的网络服务器的所有响应标头中

    我正在运行一个 apache 网络服务器 我想将 X Content Type Options nosniff 添加到来自我的网络服务器的所有响应标头 我怎样才能做到这一点 是否可以通过更改 apache 配置文件来实现此目的 确保 mod
  • jQuery UI Datepicker 奇怪的行为

    我在使用 jqueryUI 使用简单的日期选择器时遇到了一个奇怪的问题 我只想显示两个月的日历 包括上个月和当前月份 我使用了这段代码 function picker datepicker numberOfMonths 2 showCurr
  • 需要参数的addEventListener(和removeEventListener)函数

    我需要向 8 个对象 手掌 添加一些侦听器 这些对象是相同的 但行为必须根据它们的位置而改变 我有以下 丑陋的 代码 root palmsStatus B B B B B B B B if root palmsStatus 0 N root
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • 角度垫排序不适用于带点表示法的 matColumnDef

    我正在尝试按列对表进行排序 当我必须过滤另一个结果中的结果时 就会出现问题 我尝试通过括号表示法和点表示法访问该属性 但没有给出结果 还将最终节点放置在 matColumnDef 中 但失败 因为有 2 列同名 table table
  • fadeOut() 和slideUp() 同时进行?

    我已经发现jQuery 淡出然后滑动 https stackoverflow com questions 734554 jquery fadeout then slideup这很好 但不是那个 我怎么能够fadeOut and slideU
  • 如何调试超时等待异步 Angular 任务?无法在角度页面上找到元素

    编辑 请注意 在 ernst zwingli 的帮助下 我找到了问题的根源 因此 如果您遇到相同的错误 他指出的修复之一可能会帮助您 我的问题是量角器本身的一个已知问题 如果您认为这可能是您 我已经扩展了我的步骤 以在我最初的问题之后查明问
  • Rangy:插入符号下的单词(再次)

    我正在尝试创建一个预输入代码以添加到 wysihtml5 富文本编辑器 基本上 我需要能够插入人员 标签引用 例如 Twitter Github Facebook 我发现一些人试图实现同样的事情的代码 http jsfiddle net A
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • Aurelia 中的角度服务?

    我还没有找到详细说明如何从 Angular 1 x 迁移到 Aurelia 的详细文档 到目前为止 我只看到人们详细介绍了 Angular 的概念directive可以在 Aurelia 中使用重制 customElement 好吧 足够简
  • 嵌套 DIV 的类似斑马的 CSS 样式

    我嵌套了 DIV 元素 但我不知道嵌套的级别 我需要每个都有与其父级不同的背景 创建类似斑马的颜色 我只使用两种背景 深色和白色 效果需要类似于在容器中设置奇数和偶数子级的样式 但在我的例子中 子级是嵌套的 我可以使用每个嵌套元素的规则来做
  • 引用自身的 Javascript 对象...有问题吗?

    由于 Javascript 允许通过引用分配复合值 因此如果 Javascript 对象引用自身 它将创建无限的引用集 如控制台中所示 这看起来像是某种无限循环 但 Chrome 似乎没有问题 这样做是否存在任何内存问题或其他风险 就记忆力
  • 在 Nodejs 中,如何停止 FOR 循环直到 MongoDB 调用返回

    我正在研究下面的代码片段 我有一个名为 stuObjList 的 JSON 对象数组 我想循环遍历数组以查找具有特定标志集的特定 JSON 对象 然后进行数据库调用以检索更多数据 当然 FOR 循环不会等待数据库调用返回并到达 j leng
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮
  • 将两个数字相加将它们连接起来而不是计算总和

    我将两个数字相加 但没有得到正确的值 例如 做1 2返回 12 而不是 3 我在这段代码中做错了什么 function myFunction var y document getElementById txt1 value var z do
  • Chrome 调试器注入 javascript

    我有这样的好奇心 是否可以以某种方式在我的页面中注入 javascript 并执行它并调试它 正如您在控制台中所做的那样 但在控制台中您无法暂停并观察变量 是否可以调试我通过控制台输入的代码 为什么无法调试通过 XHR 接收的代码 Than

随机推荐

  • .net Core Quartz 依赖注入

    我如何配置 Quartz net核心使用依赖注入 我使用标准的 net core依赖机制 在实现类的构造函数中IJob 我需要注入一些依赖项 您可以使用Quartz Spi IJobFactory接口并实现它 Quartz 文档指出 当触发
  • SVG QIcon 无法返回在 QToolButton 中使用的放大像素图

    我在图标中使用 SVG 图像QToolButtons 但我需要能够更改工具按钮的大小 并且需要放大或缩小图标 我的 SVG 图标的原始大小为 24 像素 麻烦的是QIcon是它们不会放大到超过原始大小 请参阅我的代码中的 attempts0
  • Shared_ptr 的删除器是否存储在自定义分配器分配的内存中?

    说我有一个shared ptr使用自定义分配器and自定义删除器 我在标准中找不到任何有关删除器应存储在何处的内容 它没有说自定义分配器将用于删除器的内存 也没有说它won t be 这是未指定的还是我只是错过了一些东西 C 11 中的 u
  • C# 的图形查看器/抽屉?

    是否有一个好的 C 库用于绘制 可视化图形 我说的是节点路径可视化而不是折线图等 最好是原生的 而不是 pstricks 的包装或类似的东西 谢谢 一些提示 快速图表 http www codeplex com quickgraph 是一个
  • 隐藏显示的引导程序弹出窗口后需要单击两次

    popoverlink popover popoverhide click function popoverlink popover hide popoverlink position absolute top 100px left 100
  • 使用已弃用的 Hamcrest 方法 is() 的替代方法是什么?

    我现在使用以下代码来断言boolean值 但是方法org hamcrest Matchers is 已弃用 assertThat someValue is false 是否有一种简单的替代语法来测试布尔值而无需求助于assertTrue 这
  • web2py 中的登录后重定向

    我在控制 web2py 中的登录后重定向行为时遇到问题 根据this http groups google com group web2py msg c07acc2f4395f6e4 web2py 以不同的方式处理登录后重定向 具体取决于登
  • WPF 相对源行为

    我的理解有些问题RelativeSource绑定行为 下面是绑定的代码Label内容到StackPanel正确标记
  • 为什么常量 POD 对象中的字段本身不是常量?

    我想为某个 GUID 一个 16 字节结构 专门设计一个模板 GUID 对象具有内部链接 因此我无法使用对象本身的地址 但我认为我可以使用对象的内容 因为该对象是常量 但这不起作用 如以下示例代码所示 struct S int const
  • 如何获取列表框中所选项目的索引?

    我想获取 Google Apps 脚本列表框中所选项目的索引 而不是所选项目本身 到目前为止我看到的所有示例都创建了一个服务器处理程序 通过以下方式获取列表框的值 var list1Value e parameter list1 我想获取索
  • Auth0 回调 URL 不匹配

    我正在 React 应用程序中使用 auth0 进行 LinkedIn 身份验证 我已经设定localhost 3000 upload在设置中的回调网址中 希望用户登录后localhost 3000 login 他们将被重定向到localh
  • docker-compose 使用多个标签构建文件

    我需要为我的应用程序功能创建一些图像 Azure 中的一些协同工作的 Web 应用程序 并且我还想使用多个标签来标记图像 例如最新版本 次要版本 主要版本和完整版本 我在这里阅读了有关扩展的信息https stackoverflow com
  • 匿名文件对象何时/如何关闭?

    在评论中这个问题 https stackoverflow com questions 38234224 learning python the hard way ex 17 i got the one liner but 关于Python单
  • 更改或覆盖 Mongorepository.save(document) 的默认行为

    有什么办法可以拦截或者改变document before MongoRepository save e 更新了吗 我正在尝试将子属性推入文档中并将数组推入文档中 我尝试过操纵DBObjects通过实施converter 使用自定义转换器 但
  • 为什么我无法覆盖 onConfigurationChanged?

    我试图重写方法 onConfigurationChanged 并收到错误 BaseActivity 类型的 onConfigurationChanged Configuration 方法必须重写或实现超类型方法 这是我的 BaseActiv
  • 将文本转换为服务器上的路径(svg)?

    如何从 TTF 字体创建文本并将其转换为静态 SVG 路径 这样任何人都可以在 illustrator 中打开它并看到这个词 作为 SVG 我们的服务器是Debain 我们主要使用PHP进行后端编码 很高兴使用 Imagemagick 或
  • 如何在 DSpace XMLUI 中重新排序 DRI div

    我需要将其修改为home的div的顺序 默认的当前DRI是 div div div div 我需要成为 div div
  • MySQL字符串函数相当于PHP ucwords()函数[重复]

    这个问题在这里已经有答案了 可能的重复 MySQL 在现有表中将每个单词的第一个字母大写 https stackoverflow com questions 3278207 mysql capitalize first letter of
  • SQL Server中检测客户端断开连接

    当客户端与 SQL Server 连接时 来自客户端 被切割 如何检测 SQL Server 2008 或 2012 中的这种断开连接 我可以解决这个问题吗服务器触发器 您可以创建一个事件通知 http technet microsoft
  • A-Frame - 使用自定义(“a-sound”)源播放/暂停声音

    编辑2 这是工作代码 非常感谢 Piotr 的帮助 没有你们我不可能如此轻松地完成这件事 sceneEl querySelector a sound setAttribute sound src url3 let playing false