snipplrCallback({"id":63363,"title":"web-audio-api-code-for-loading-audio-at-a-particular-speed","source":"
  1. function<\/span> playAudio(<\/span>file,<\/span> speed)<\/span>{<\/span>\t<\/div><\/li>
  2. \tif<\/span> (<\/span>typeof<\/span> AudioContext ==<\/span> "function"<\/span>)<\/span> {<\/span><\/div><\/li>
  3. \t\tvar<\/span> audioContext =<\/span> new<\/span> AudioContext(<\/span>)<\/span>;<\/span><\/div><\/li>
  4. \t}<\/span> else<\/span> if<\/span> (<\/span>typeof<\/span> webkitAudioContext ==<\/span> "function"<\/span>)<\/span> {<\/span><\/div><\/li>
  5. \t\tvar<\/span> audioContext =<\/span> new<\/span> webkitAudioContext(<\/span>)<\/span>;<\/span><\/div><\/li>
  6. \t}<\/span><\/div><\/li>
  7.  <\/div><\/li>
  8. \tvar<\/span> source =<\/span> audioContext.createBufferSource<\/span>(<\/span>)<\/span>;<\/span><\/div><\/li>
  9. \tsource.connect<\/span>(<\/span>audioContext.destination<\/span>)<\/span>;<\/span><\/div><\/li>
  10.  <\/div><\/li>
  11.  <\/div><\/li>
  12. \tvar<\/span> xhr =<\/span> new<\/span> XMLHttpRequest(<\/span>)<\/span>;<\/span><\/div><\/li>
  13. \txhr.open<\/span>(<\/span>"GET"<\/span>,<\/span> file,<\/span> true<\/span>)<\/span>;<\/span><\/div><\/li>
  14. \txhr.responseType<\/span> =<\/span> "arraybuffer"<\/span>;<\/span><\/div><\/li>
  15. \txhr.onload<\/span> =<\/span> function<\/span>(<\/span>)<\/span> {<\/span><\/div><\/li>
  16. \t\tvar<\/span> buffer =<\/span> audioContext.createBuffer<\/span>(<\/span>xhr.response<\/span>,<\/span> false<\/span>)<\/span>;<\/span><\/div><\/li>
  17. \t\tsource.buffer<\/span> =<\/span> buffer;<\/span><\/div><\/li>
  18. \t\tsource.playbackRate<\/span>.value<\/span> =<\/span> speed;<\/span><\/div><\/li>
  19. \t\tsource.noteOn<\/span>(<\/span>0<\/span>)<\/span>;<\/span><\/div><\/li>
  20. \t}<\/span>;<\/span><\/div><\/li>
  21. \txhr.send<\/span>(<\/span>)<\/span>;<\/span><\/div><\/li>
  22. }<\/span><\/div><\/li><\/ol><\/pre>","link":"https:\/\/snipplr.com\/view\/63363\/web-audio-api-code-for-loading-audio-at-a-particular-speed"});