未捕获的TypeError:无法在“ AudioContext”上执行“ createMediaElementSource”:参数1的类型不是“ HTMLMediaElement”

时间:2019-10-07 21:40:43

标签: javascript html audio visualizer

我目前正在尝试在JavaScript中创建音频可视化工具,并且此错误不断抛出:

  

未捕获的TypeError:无法在执行'createMediaElementSource'   “ AudioContext”:参数1的类型不是“ HTMLMediaElement”。

我不太确定如何解决该错误,我一直在互联网上寻找答案,但是似乎没有任何帮助。

当您点击播放时,音乐确实会播放,但是我需要我的可视化器接受来自音频元素的数据,以便我可以使用一个可视化器。

This is a link to my code, you can access it by right-clicking and hitting inspect

1 个答案:

答案 0 :(得分:0)

这是您代码的一部分:

let audioCtx = new (window.AudioContext || window.webkitAudioContext)();
let audio = document.querySelector('song1');
let analyser = audioCtx.createAnalyser();
let source = audioCtx.createMediaElementSource(audio);

您尝试获取元素song1,但HTML中不存在该元素。这可能是您收到此错误的原因。另外,如果您尝试按ID检索元素,则应该

let audio = document.querySelector('#song1');

然后在您的html中

<audio id="song1" controls="">

然后我检查了您还会遇到其他错误,但这可以回答您的问题。