मैं वेब ऑडियो एपीआई के साथ खेल रहा हूं और मैं एक गीत के कई हिस्सों को लोड करने की कोशिश कर रहा हूं और उन्हें एक नए ऐरेबफर में जोड़ रहा हूं और फिर इसका उपयोग करता हूं एक गीत के रूप में सभी भागों को खेलने के लिए ArrayBuffer। निम्नलिखित उदाहरण में मैं एक गीत के विभिन्न हिस्सों के बजाय एक ही गीत डेटा (जो एक छोटा पाश है) का उपयोग कर रहा हूं।वेब ऑडियो एपीआई अलग-अलग ऑडियोबफर को जोड़/जोड़ता है और उन्हें एक गीत के रूप में चलाता है
समस्या यह है कि यह अभी भी दो बार की बजाय सिर्फ एक बार खेलता है और मुझे नहीं पता कि क्यों।
function init() {
/**
* Appends two ArrayBuffers into a new one.
*
* @param {ArrayBuffer} buffer1 The first buffer.
* @param {ArrayBuffer} buffer2 The second buffer.
*/
function appendBuffer(buffer1, buffer2) {
var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
tmp.set(new Uint8Array(buffer1), 0);
tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
return tmp;
}
/**
* Loads a song
*
* @param {String} url The url of the song.
*/
function loadSongWebAudioAPI(url) {
var request = new XMLHttpRequest();
var context = new webkitAudioContext();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
/**
* Appends two ArrayBuffers into a new one.
*
* @param {ArrayBuffer} data The ArrayBuffer that was loaded.
*/
function play(data) {
// Concatenate the two buffers into one.
var a = appendBuffer(data, data);
var buffer = a.buffer;
var audioSource = context.createBufferSource();
audioSource.connect(context.destination);
//decode the loaded data
context.decodeAudioData(buffer, function(buf) {
console.log('The buffer', buf);
audioSource.buffer = buf;
audioSource.noteOn(0);
audioSource.playbackRate.value = 1;
});
};
// When the song is loaded asynchronously try to play it.
request.onload = function() {
play(request.response);
}
request.send();
}
loadSongWebAudioAPI('http://localhost:8282/loop.mp3');
}
window.addEventListener('load',init,false);
धन्यवाद, आपकी टिप्पणी ने मेरी मदद की! http://72lions.github.com/PlayingChunkedMP3-WebAudioAPI/ – 72lions
@cwilso प्लेबैक के अलग-अलग समय में एकाधिक ऑडियोबफर सॉर्स नोड्स को एक साथ जोड़ना संभव है? –
ठीक है, आप बस उन्हें एक ही गंतव्य से जोड़ सकते हैं। मुझे लगता है कि जिस प्रभाव को आप ढूंढ रहे हैं उसका प्रभाव है। – cwilso