【发布时间】:2019-05-21 07:37:26
【问题描述】:
我正在使用类似收音机的对象制作场景,并且我想让它在单击时播放我资产中的随机音频文件。这个问题帮助我了解如何添加音频文件Play sound on click in A-Frame 但我无法弄清楚随机方面。 非常感谢。
【问题讨论】:
我正在使用类似收音机的对象制作场景,并且我想让它在单击时播放我资产中的随机音频文件。这个问题帮助我了解如何添加音频文件Play sound on click in A-Frame 但我无法弄清楚随机方面。 非常感谢。
【问题讨论】:
你可以有一个声音元素数组
// use ID's - grab by document.getElementById(audioIds[num])
var audioIds = ['one', 'two', 'three']
// use a class - grab by audioEls[num]
var audioEls = document.getElementsByClassName('sharedClassName')
并使用简单的随机数来选择一个项目
// get a random number between 0 and the number of the elements
let lastIndex = audioEls.length - 1 // arrays begin at 0.
var audioEl = audioEls[Math.round(Math.random() * lastIndex)]
然后在click 停止任何播放的声音,并获取一个新的:
this.el.addEventListener('click', () => {
if (!playing) {
audioEl = audio[Math.round(Math.random() * (audio.length - 1))]
audioEl.play();
} else {
audioEl.pause();
audioEl.currentTime = 0;
}
playing = !playing;
});
您可以在我的fiddle 中查看。
【讨论】:
Math.random 返回一个介于 [0, 1) 之间的数字。我已将 anwser 和 fiddle 更新为具有 4 个音频元素