Javascript 在marker detect A-frame AR.JS上播放音频

Javascript 在marker detect A-frame AR.JS上播放音频,javascript,jquery,three.js,aframe,ar.js,Javascript,Jquery,Three.js,Aframe,Ar.js,当a-frame和AR.JS库检测到标记时,我尝试播放音频源 目前,我有以下场景、摄影机和标记: <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;';> <a-marker preset="hiro"> <a-box position='0 0.5 0' material='color: black;'></a-box&

当a-frame和AR.JS库检测到标记时,我尝试播放音频源

目前,我有以下场景、摄影机和标记:

  <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;';>
        <a-marker preset="hiro">
                <a-box position='0 0.5 0' material='color: black;'></a-box>
        </a-marker>
        <a-assets>
            <audio id="sound" src="audio.mp3" preload="auto"></audio>
        </a-assets>
    <a-entity sound="src: #sound" autoplay="false"></a-entity>
    <a-entity camera></a-entity>
    </a-scene>

但是,它不起作用。你知道为什么这不起作用吗?我甚至没有看到控制台日志,所以它似乎也没有运行

您是否注册了一个处理每个滴答声的组件

<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;';>
       <a-assets>
            <audio id="sound" src="audio.mp3" preload="auto"></audio>
        </a-assets>
        <a-marker preset="hiro">
                <a-box position='0 0.5 0' material='color: black;' soundhandler> 
                </a-box>
        </a-marker>
        <a-entity sound="src: #sound" autoplay="false"></a-entity>
        <a-entity camera></a-entity>
</a-scene>

<script>
AFRAME.registerComponent('soundhandler', {
    tick: function () {
           var entity = document.querySelector('[sound]');
         if (document.querySelector('a-marker').object3D.visible == true) {
            entity.components.sound.playSound();
        } else {
            entity.components.sound.pauseSound();
        }

     }
});
</script>

AFRAME.registerComponent('soundhandler'{
勾选:函数(){
var entity=document.querySelector(“[sound]”);
if(document.querySelector('a-marker').object3D.visible==true){
entity.components.sound.playSound();
}否则{
entity.components.sound.pauseSound();
}
}
});

谢谢!我确实试图注册一个组件,但我一定是写错了代码,因为它没有执行,更不用说创建任何控制台日志了。可能是因为我试着把这个写在头上,而不是写在身体标签的末尾。这很有效。
<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;';>
       <a-assets>
            <audio id="sound" src="audio.mp3" preload="auto"></audio>
        </a-assets>
        <a-marker preset="hiro">
                <a-box position='0 0.5 0' material='color: black;' soundhandler> 
                </a-box>
        </a-marker>
        <a-entity sound="src: #sound" autoplay="false"></a-entity>
        <a-entity camera></a-entity>
</a-scene>

<script>
AFRAME.registerComponent('soundhandler', {
    tick: function () {
           var entity = document.querySelector('[sound]');
         if (document.querySelector('a-marker').object3D.visible == true) {
            entity.components.sound.playSound();
        } else {
            entity.components.sound.pauseSound();
        }

     }
});
</script>