का उपयोग कर किसी अन्य की पृष्ठभूमि पर रखें, मैं एक गीत को एक दूसरे स्रोत के रूप में एक गीत के रूप में दो ऑडियो स्रोतों को मिश्रित करना चाहता हूं।दो ऑडियो बफर मिलाकर, वेब ऑडियो एपीआई
<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]"
}
तो मैं कैसे एक स्रोत में इस स्रोतों मिश्रण कर सकते हैं? उदाहरण के लिए मेरे पास दो फाइलें हैं, मैं एक स्रोत को दूसरे की पृष्ठभूमि के रूप में कैसे रख सकता हूं और इस मिश्रण को एकल स्रोत में डाल सकता हूं?
एक और परिदृश्य: यदि मैं माइक्रोफ़ोन से इनपुट स्ट्रीम पढ़ता हूं उदाहरण के लिए और मैं इस इनपुट को पृष्ठभूमि गीत (किसी प्रकार का कराओके) पर रखना चाहता हूं तो यह क्लाइंट पर HTML5 समर्थन के साथ काम करना संभव है? प्रदर्शन के बारे में क्या? सर्वर ऑडियो पर इस ऑडियो स्रोतों को मिश्रण करने के लिए शायद बेहतर तरीका?
यदि यह संभव है, तो mixAudioSources फ़ंक्शन का संभावित कार्यान्वयन क्या है?
धन्यवाद।
क्या आप अब तक की कोशिश की? –
क्रॉसफ़ेडिंग अनुभाग https://www.html5rocks.com/en/tutorials/webaudio/intro/ –
हाय पर एक नज़र डालें। इस लेख में मेरे प्रश्न का सबसे नज़दीकी उदाहरण एक ही समय में दो स्रोत खेल रहा है। मुझे बहुत मदद नहीं है क्योंकि मुझे अपलोड करने और सर्वर पर सहेजने के लिए एक एकल स्रोत की आवश्यकता है। –