50
edits
Changes
→Complete Example: Creating a Web Based Tone Generator
var currentWritePosition = 0;
var prebufferSize = sampleRate / 2; // buffer 500ms
var tail = null, tailPosition;
// The function called with regular interval to populate
var written;
// Check if some data was not written in previous attempts.
if(tail) { written = audio.mozWriteAudio(tail.subarray(tailPosition));
currentWritePosition += written;
tailPosition += written; if(written tailPosition < tail.length) {
// Not all the data was written, saving the tail...
return; // ... and exit the function.
}
if(written < soundData.length) {
// Not all the data was written, saving the tail.
tail = soundData.slice(; tailPosition = written);
}
currentWritePosition += written;