我想通过混合两种音频源,把一首歌曲作为另一个后台为单一来源。混合两种音频缓冲,把一个在另一个背景下,通过使用网络音频阿比
例如,我有输入:
<input id="files" type="file" name="files[]" multiple onchange="handleFilesSelect(event)"/>
而且脚本这个文件解码:
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new window.AudioContext();
var sources = [];
var files = [];
var mixed = {};
function handleFilesSelect(event){
if(event.target.files.length <= 1)
return false;
files = event.target.files;
readFiles(mixAudioSources);
}
function readFiles(index, callback){
var freader = new FileReader();
var i = index ? index : 0;
freader.onload = function (e) {
context.decodeAudioData(e.target.result, function (buf) {
sources[i] = context.createBufferSource();
sources[i].connect(context.destination);
sources[i].buffer = buf;
if(files.length > i+1){
readFiles(i + 1, callback);
} else {
if(callback){
callback();
}
}
});
};
freader.readAsArrayBuffer(files[i]);
}
function mixAudioSources(){
//So on our scenario we have here two decoded audio sources in "sources" array.
//How we can mix that "sources" into "mixed" variable by putting "sources[0]" as background of "sources[1]"
}
所以,我怎么可以搭配这个源到一个源?例如,我有两个文件,我怎么能把一个源作为另一个源的背景,并把这个混合成单一源?
另一种情况:如果我从麦克风读取输入流,例如我想将此输入放在背景歌曲(某种卡拉OK)上,可以在html5支持的客户端上完成此项工作?性能如何?也许更好的方法来混合服务器端的这些音频源?
如果有可能,所以什么可能的实现mixAudioSources功能?
谢谢。
你尝试过这么远吗? –
看看交叉衰减部分https://www.html5rocks.com/en/tutorials/webaudio/intro/ –
嗨。在本文中,最接近我的问题的例子是同时播放两个来源。对我没有太大帮助,因为我需要将一个单一来源上传并保存在服务器上。 –