我有一个基于 2d 画布的网络音频游戏,其中包括使用网络音频 api 位于画布上特定像素坐标处的空间化音频源。
虽然我已经成功地使用网络音频 pannerNode 在画布元素上精确定位每个音频源,如下所示:
var canvas = document.getElementById("map");
var context = canvas.getContext("2d");
function audioFileLoader(fileDirectory) {
var soundObj = {};
var playSound = undefined;
var panner = undefined;
var gainNode = undefined;
var getSound = new XMLHttpRequest();
soundObj.fileDirectory = fileDirectory;
getSound.open("GET", soundObj.fileDirectory, true);
getSound.responseType = "arraybuffer";
getSound.onload = function() {
audioContext.decodeAudioData(getSound.response, function(buffer) { soundObj.soundToPlay = buffer;
}); };
getSound.send();
panner = audioContext.createPanner();
panner.panningModel = 'HRTF';
soundObj.position = function(x,y,z) {
panner.setPosition(x,y,z);
};
我现在正在尝试使用 Resonance Audio Web SDK 升级音频空间化,这样我就可以使用它可以说是更高级的音频空间化特性。
如何使用 Resonance Audio 的 setPosition 以像素 (x,y) 为单位定义画布元素上音频源的位置?
我似乎无法弄清楚如何将原生共振音频比例(米)转换为我的画布元素上的像素坐标。我假设如果我能解决这个问题,我会在 2d 游戏中定义不同音频房间的大小和位置,这将非常酷。
谢谢。