我想创建一个Web Audio声像器来定位WebRTC流中的声音。
我的流连接正常,可以听到音频并观看视频,但是全景声对音频没有任何影响(将panner.setPosition(10000,0,0)更改为+或-10000,对声音)。
这是onaddstream函数,其中音频和视频通过管道传递到视频元素中,并且我想我需要添加全景声。
没有错误,只是根本没有平移。
我在做什么错?
谢谢!
peer_connection.onaddstream = function(event) {
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
audioCtx.listener.setOrientation(0,0,-1,0,1,0)
var panner = audioCtx.createPanner();
panner.panningModel = 'HRTF';
panner.distanceModel = 'inverse';
panner.refDistance = 1;
panner.maxDistance = 10000;
panner.rolloffFactor = 1;
panner.coneInnerAngle = 360;
panner.coneOuterAngle = 0;
panner.coneOuterGain = 0;
panner.setPosition(10000, 0, 0); //this doesn't do anything
peerInput.connect(panner);
panner.connect(audioCtx.destination);
// attach the stream to the document element
var remote_media = USE_VIDEO ? $("<video>") : $("<audio>");
remote_media.attr("autoplay", "autoplay");
if (MUTE_AUDIO_BY_DEFAULT) {
remote_media.attr("muted", "false");
}
remote_media.attr("controls", "");
peer_media_elements[peer_id] = remote_media;
$('body').append(remote_media);
attachMediaStream(remote_media[0], event.stream);
}
尝试在设置声像器之前获取事件流
var source = audioCtx.createMediaStreamSource(event.stream);
参考:Mozilla Developer Network - AudioContext
CreatePaneer参考:Mozilla Developer Network - createPanner