在标记检测 A 帧上播放音频 AR.JS
Play audio on marker detect A-frame AR.JS
当使用 A 帧和 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>
我最初尝试了以下方法:
var entity = document.querySelector('[sound]');
if(document.querySelector("a-marker").object3D.visible == true){
entity.components.sound.playSound();
console.log("playing");
} else {
entity.components.sound.pauseSound();
console.log("not playing");
}
然而,它不起作用。关于为什么这不起作用或不起作用的任何想法?我什至没有看到控制台日志,所以它也没有出现在 运行 中。
您是否注册了一个组件来处理每个滴答声?
<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>
当使用 A 帧和 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>
我最初尝试了以下方法:
var entity = document.querySelector('[sound]');
if(document.querySelector("a-marker").object3D.visible == true){
entity.components.sound.playSound();
console.log("playing");
} else {
entity.components.sound.pauseSound();
console.log("not playing");
}
然而,它不起作用。关于为什么这不起作用或不起作用的任何想法?我什至没有看到控制台日志,所以它也没有出现在 运行 中。
您是否注册了一个组件来处理每个滴答声?
<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>