'source.connect()'不是函数-Web Audio API

时间:2018-11-02 09:12:30

标签: javascript web-audio-api

一般来说,我对Web Audio API和Java脚本还很陌生,因此对于某些人来说这似乎很愚蠢,但我正在尝试在JavaScript画布中创建基本的音频可视化工具。

我在音频上下文方面遇到了问题,因此将分析仪连接到音频源是本地存储的mp3文件。 'source.connect()'显然不是一个函数,但是我确实从Web Audio API指南中的https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API复制了语法。

function SetUpAudio()
{
    let audio = document.createElement('audio');
    audio.src = 'never let u go master 3.mp3';
    let source = audio.src
    audio.controls = 'true';
    document.body.appendChild(audio);
    audio.style.width = window.innerWidth + 'px';

    let audioCtx = new (window.AudioContext)();
    let analyser = audioCtx.createAnalyser();

    source.connect(analyser);
    audio.play();
}

这是出现的错误:

未捕获的TypeError:source.connect不是函数

1 个答案:

答案 0 :(得分:0)

您混合了变量名称。该文档有以下示例:

source = audioCtx.createMediaStreamSource(stream);
source.connect(analyser);

但是在您的情况下,source设置为audio.src的值,该值只是一个字符串:'never let u go master 3.mp3',而不是MediaStreamSource。

如下更改:

audioCtx = new (window.AudioContext)();
let analyser = audioCtx.createAnalyser();

audioCtx.connect(analyser);

然后从那里拿走。如果您还有其他问题,请发布一个新问题。