Je veux mélanger deux sources audio en mettant une chanson comme arrière-plan d'une autre source unique.Mélanger deux tampons audio, en mettre un sur le fond d'un autre en utilisant web Audio Api
par exemple, j'ai entrée:
<input id="files" type="file" name="files[]" multiple onchange="handleFilesSelect(event)"/>
Et script pour décoder les fichiers:
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]"
}
Alors, comment je peux mélanger ces sources en une seule source? Par exemple, j'ai deux fichiers, comment puis-je mettre une source en arrière-plan d'un autre et mettre ce mélange en source unique? Un autre scénario: si je lis le flux d'entrée du microphone par exemple et que je veux mettre cette entrée sur la chanson de fond (une sorte de karaoké), il est possible de faire ce travail sur le client avec le support html5? Qu'en est-il des performances? Peut-être meilleur moyen de mélanger ces sources audio sur le côté serveur?
Si c'est possible, alors quelle est l'implémentation possible de mixAudioSources?
Merci.
Qu'avez-vous essayé jusqu'à présent? –
Jetez un oeil à la section de fondu enchaîné https://www.html5rocks.com/fr/tutoriels/webaudio/intro/ –
Salut. Dans cet article, l'exemple le plus proche de ma question est de jouer deux sources en même temps. Ne m'aide pas tellement parce que j'ai besoin d'une seule source à télécharger et à enregistrer sur le serveur. –