在一个帧中,当新声音开始播放时,如何停止所有声音?

时间:2019-05-11 18:41:23

标签: audio aframe

当我单击a实体时,它会播放声音,但是在播放时如何使它停止所有其他声音,所以这不是一团混乱的东西吗?

我已经搜索了这个问题,并尝试添加他们使用的代码,但是它们没有起作用,我已经尝试了5种不同的代码。

我的声音是这样的:

<audio id="mercury-sound" src="mercury.mp3" preload="auto"></audio>

<script id="mercury" type="text/html">
          <a-entity class="mercury"
            geometry="primitive: sphere; radius: 0.67"
            material="shader: flat; src: ${thumb}"
            event-set__mouseenter="_target: #image-mercury; material.src: ${src}; opacity: 1"
            event-set__mouseleave="_target: #image-mercury; material.src: ${src}; opacity: 0">
            </a-entity>
          </script>


<a-entity template="src: #mercury" sound="src: #mercury-sound; on"></a-entity>

我希望它播放声音并在播放时停止所有其他声音。

编辑:如果还有其他人遇到此问题,这就是它的解决方法

  

模板组件正在创建子节点,您需要抓取el = e.target.parentNode。在这里也检查一下,我将在js中管理所有与声音相关的逻辑,但这就是另一个主题:) btw哪里的冥王星不好! –皮亚特(Piotr)Adam Milewski

1 个答案:

答案 0 :(得分:0)

这是使用<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <packagingExcludes>**/css/style.css,**/js/app.js</packagingExcludes> <webResources> <resource> <directory>target/static_versioned</directory> </resource> <resource> <directory>src/main/webapp</directory> <filtering>true</filtering> </resource> </webResources> </configuration> </plugin> 的方法。这个想法是:

1)保留带有声音的元素数组
2)单击一个时-遍历数组并停止声音
3)播放“被点击的”

具有这样的设置:

<script type="text/javascript" src="js/app_${project.version}.js"></script>

您可以创建一个脚本,该脚本将:

<script type="text/javascript" src="js/app_1.0-SNAPSHOT.js"></script>

通常,我建议使用aframe custom component。但是,以这种方式获得创意可能会更容易。在this glitch中进行检查。