繁体   English   中英

将声像器/空间音频从 WebRTC 流添加到 Web 音频上下文不起作用

[英]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

  1. 删除您为 panner 节点设置的所有选项,看看是否有帮助。 (锥角对我来说似乎有点有趣,但我总是忘记它们是如何工作的。)
  2. 如果这不起作用,请使用声像器创建一个较小的测试,但使用简单的振荡器作为输入。 调整参数和位置以确保它符合您的要求。
  3. 把它放回你的应用程序中。 事情应该会奏效。

自己想出来的。

问题不是代码,而是因为我连接了蓝牙音频。

蓝牙显然只能在关闭麦克风的情况下进行立体声音频。 一旦您激活麦克风,就会窃取其中一个通道,音频输出降级为单声道。

如果你有单声道音频,你绝对不能做 3D 定位声音,因此我认为代码不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM