【发布时间】:2018-01-07 19:52:01
【问题描述】:
编辑 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 );
}
});
原文:我在 A-Frame 中使用 this 组件,但我希望从 ('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>
【问题讨论】:
标签: javascript audio aframe