我正在一个项目上,我需要添加3d声音效果,就像声音在听众效果周围不断移动一样。有可能通过howlerjs实现这一点,我看到使用howler能够从特定坐标/方向播放声音,但是如何实现环绕/歧义的声音? 还是JavaScript中的另一个库可以实现这一目标?
感谢您的帮助。
答案 0 :(得分:0)
迟到了半年,但是是的,在howler.js中完全有可能,我自己没有使用过它,但是从文档中判断,您可以更新职位。我发现有更多的库可以执行此操作,请在此处检查3dage如何完全满足您的要求: https://codepen.io/naugtur/pen/QgmvOB?editors=1010
var world = IIIdage.World({
tickInterval: 200
})
var annoyingFly = IIIdage.Thing({
is: ['fly'],
sounds: {
'buzzing constantly': {
sound: 'buzz',
times: Infinity
}
},
reacts: [
{
// to: world.random.veryOften(),
to: world.time.once(),
with: 'buzzing constantly'
}
]
})
// scene should create and expose a default world or accept one
var scene = IIIdage.Scene({
title: 'Annoying fly',
library: {
sounds: {
'buzz': {
src: ['https://webaudiogaming.github.io/3dage/fly.mp3']
}
}
},
world: world,
things: [ // scene iterates all things and spawns them into the world. same can be done manually later on.
annoyingFly({
pos: [-1, -15, 0],
dir: [1, 0, 0],
v: 1
})
]
}).load().run()
setTimeout(function () {
scene.dev.trace(IIIdage.dev.preview.dom())
}, 500)
setInterval(function rotateVector() {
var angleRad = 0.15
var d=scene.things[0].attributes.dir
var x=d[0], y=d[1]
var cosAngle = Math.cos(angleRad), sinAngle = Math.sin(angleRad)
scene.things[0].attributes.dir = [x * cosAngle - y * sinAngle, y * cosAngle + x * sinAngle, 0]
}, 500)
window.scene = scene
还有一些其他类似的事情:
如果您仍然需要帮助,希望它可以将您推向正确的方向。