snipplrCallback({"id":63363,"title":"web-audio-api-code-for-loading-audio-at-a-particular-speed","source":"
function<\/span> playAudio(<\/span>file,<\/span> speed)<\/span>{<\/span>\t<\/div><\/li> \tif<\/span> (<\/span>typeof<\/span> AudioContext ==<\/span> "function"<\/span>)<\/span> {<\/span><\/div><\/li> \t\tvar<\/span> audioContext =<\/span> new<\/span> AudioContext(<\/span>)<\/span>;<\/span><\/div><\/li> \t}<\/span> else<\/span> if<\/span> (<\/span>typeof<\/span> webkitAudioContext ==<\/span> "function"<\/span>)<\/span> {<\/span><\/div><\/li> \t\tvar<\/span> audioContext =<\/span> new<\/span> webkitAudioContext(<\/span>)<\/span>;<\/span><\/div><\/li> \t}<\/span><\/div><\/li> <\/div><\/li> \tvar<\/span> source =<\/span> audioContext.createBufferSource<\/span>(<\/span>)<\/span>;<\/span><\/div><\/li> \tsource.connect<\/span>(<\/span>audioContext.destination<\/span>)<\/span>;<\/span><\/div><\/li> <\/div><\/li> <\/div><\/li> \tvar<\/span> xhr =<\/span> new<\/span> XMLHttpRequest(<\/span>)<\/span>;<\/span><\/div><\/li> \txhr.open<\/span>(<\/span>"GET"<\/span>,<\/span> file,<\/span> true<\/span>)<\/span>;<\/span><\/div><\/li> \txhr.responseType<\/span> =<\/span> "arraybuffer"<\/span>;<\/span><\/div><\/li> \txhr.onload<\/span> =<\/span> function<\/span>(<\/span>)<\/span> {<\/span><\/div><\/li> \t\tvar<\/span> buffer =<\/span> audioContext.createBuffer<\/span>(<\/span>xhr.response<\/span>,<\/span> false<\/span>)<\/span>;<\/span><\/div><\/li> \t\tsource.buffer<\/span> =<\/span> buffer;<\/span><\/div><\/li> \t\tsource.playbackRate<\/span>.value<\/span> =<\/span> speed;<\/span><\/div><\/li> \t\tsource.noteOn<\/span>(<\/span>0<\/span>)<\/span>;<\/span><\/div><\/li> \t}<\/span>;<\/span><\/div><\/li> \txhr.send<\/span>(<\/span>)<\/span>;<\/span><\/div><\/li> }<\/span><\/div><\/li><\/ol><\/pre>","link":"https:\/\/snipplr.com\/view\/63363\/web-audio-api-code-for-loading-audio-at-a-particular-speed"});