Javascript createMediaElementSource是否从音频文件输入?

Javascript createMediaElementSource是否从音频文件输入?,javascript,audio,web-audio-api,Javascript,Audio,Web Audio Api,我正试图建立一个网站,快速执行阶段取消立体声音频。当我发现阶段取消时,我觉得这很神奇,所以我想看看是否可以在网上快速完成,让它更有趣 我发现,有一个例子正好是我想要的(如果你按下卡拉OK按钮)。但是,它有点慢,而且不能处理大文件 实际上,我应该使用mediaElement来操纵较长音轨的音频,因为我们不应该用javascript进行复杂的处理 我试图使用mediaElement,但我甚至不知道如何开始。我试过这个: <input type="file" id="upload" accept

我正试图建立一个网站,快速执行阶段取消立体声音频。当我发现阶段取消时,我觉得这很神奇,所以我想看看是否可以在网上快速完成,让它更有趣

我发现,有一个例子正好是我想要的(如果你按下卡拉OK按钮)。但是,它有点慢,而且不能处理大文件

实际上,我应该使用mediaElement来操纵较长音轨的音频,因为我们不应该用javascript进行复杂的处理

我试图使用mediaElement,但我甚至不知道如何开始。我试过这个:

<input type="file" id="upload" accept="audio/*">

<script>
    var upload = document.getElementById("upload");
    upload.addEventListener("change", function() {
        var context = new (window.AudioContext || window.webkitAudioContext)();
        var source = context.createMediaElementSource(upload);
        console.log(source);
    });
</script>

var upload=document.getElementById(“上传”);
upload.addEventListener(“更改”,函数(){
var context=new(window.AudioContext | | window.webkitadiocontext)();
var source=context.createMediaElementSource(上传);
console.log(源代码);
});
我发现错误
未能在“BaseAudioContext”上执行“createMediaElementSource”:参数1不是“HTMLMediaElement”类型。

我知道输入元素与音频元素不同,所以我不明白如何将其作为媒体元素加载


任何帮助都将不胜感激

createMediaElementSource()
需要一个
元素,因此如果我们创建一个元素并将文件数据传递给它,我们就得到了源代码

upload.addEventListener(“更改”,函数(){
fr=新文件读取器();
fr.readAsDataURL(document.getElementById(“upload”).files[0]);
fr.onload=e=>{
var audio=document.createElement('audio');
audio.src=e.target.result;
var context=new(window.AudioContext | | window.webkitadiocontext)(),
source=context.createMediaElementSource(音频);
console.log(源代码);
};
});

createMediaElementSource()
需要一个
元素,因此如果我们创建一个元素并将文件数据传递给它,我们就得到了源代码

upload.addEventListener(“更改”,函数(){
fr=新文件读取器();
fr.readAsDataURL(document.getElementById(“upload”).files[0]);
fr.onload=e=>{
var audio=document.createElement('audio');
audio.src=e.target.result;
var context=new(window.AudioContext | | window.webkitadiocontext)(),
source=context.createMediaElementSource(音频);
console.log(源代码);
};
});