• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

createMediaElementSource从音频文件输入?

JavaScript 来源:MysteryPancake 3次浏览

我正在尝试制作一个网站,可立即在立体声音频上执行相位取消。当我发现相位消除和所有它可以实现我认为它是惊人的,所以我想看看你是否可以在网上很快做到这一点,使它更有趣。createMediaElementSource从音频文件输入?

我找到了this Web Audio API post,这个例子正是我想要的(如果你按下卡拉OK按钮)。但是,它有点慢,它不适用于大文件。 The author also mentions this:

真的,我应该使用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> 

我得到的错误Failed to execute 'createMediaElementSource' on 'BaseAudioContext': parameter 1 is not of type 'HTMLMediaElement'.

我知道一个输入元素是不一样的声音元素,所以我不明白你怎么可以加载它作为一个MediaElement的。

任何帮助将不胜感激!

===========解决方案如下:

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

​​


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)