Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 附加mediaElementSource时,web音频将静音_Javascript_Audio_Html5 Audio_Web Audio Api_Audiocontext - Fatal编程技术网

Javascript 附加mediaElementSource时,web音频将静音

Javascript 附加mediaElementSource时,web音频将静音,javascript,audio,html5-audio,web-audio-api,audiocontext,Javascript,Audio,Html5 Audio,Web Audio Api,Audiocontext,我试图使用HTML5Web音频分析器来可视化TwilioAPI中的调用记录,但每当我连接分析器(可视化器)时,它都会使我的音频静音 以下是相关代码: initScope = function () { context = new window.AudioContext() canvas = document.querySelector('.visualizer') scope = new Oscilloscope(canvas, options)

我试图使用HTML5Web音频分析器来可视化TwilioAPI中的调用记录,但每当我连接分析器(可视化器)时,它都会使我的音频静音

以下是相关代码:

initScope = function () {
        context = new window.AudioContext()
        canvas = document.querySelector('.visualizer')
        scope = new Oscilloscope(canvas, options)
        source = context.createMediaElementSource($oscilloscope[0]) //MH TODO: sound gets cut here
    }
是分析仪的设置位置,[示波器][1]是我正在使用的分析仪库

这里是我加载和播放音频的地方:

loadAudio=函数(){ $audio[0]。src='/recordings/'+播放列表[current]。recordingSid $audio[0]。addEventListener('canplaythrough',playAudio) $audio[0]。加载() }

播放音频=功能(){ 作用域addSignal(源) $audio[0]。播放() }

事实上,我让它工作了一段时间,但它可能实际上是chrome中的一个bug,它允许游戏,当chrome更新时停止工作

如果我把这个评论删掉
source=context.createMediaElementSource($audio)

音频将播放(只是没有可视化),反之亦然

我想知道示波器代码中是否有什么东西会出于某种原因使音频流静音,或者我需要做些什么来将
范围
连接到音频节点。我看到了一些关于连接河流的信息

我通过克隆音频节点暂时解决了这个问题,因此我有一个节点用于实际音频,另一个节点用于示波器,但感觉有些马虎

欣赏任何想法或建议

一开始我以为这是CORS的问题,但我解决了,所以我的服务器充当了twilio录制的本地代理。

啊,只是需要而已

source.connect(context.destination)

之后


scope.addSignal(source,options.color)

您只需在音频标签中添加此属性:crossorigin=“anonymous”

您需要做的是在音频标签上设置crossorigin=“anonymous”属性,然后标签将类似于:

<audio crossorigin="anonymous"></audio>