[英]WebAudio panner not working properly with WebRTC audio stream
[英]Adding panner / spacial audio to Web Audio Context from a WebRTC stream not working
我想创建一个 Web Audio panner 来定位来自 WebRTC 流的声音。
我的流连接正常,可以听到音频并看到视频,但是 panner 对音频没有任何影响(将 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);
}
在设置 panner 之前尝试获取事件流
var source = audioCtx.createMediaStreamSource(event.stream);
参考: Mozilla 开发者网络 - AudioContext
CreatePaneer 参考: Mozilla 开发者网络 - createPanner
第三方库: wavesurfer.js
自己想出来的。
问题不是代码,而是因为我连接了蓝牙音频。
蓝牙显然只能在关闭麦克风的情况下进行立体声音频。 一旦您激活麦克风,就会窃取其中一个通道,音频输出降级为单声道。
如果你有单声道音频,你绝对不能做 3D 定位声音,因此我认为代码不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.