Skip to content

Instantly share code, notes, and snippets.

@halfbyte
Created August 19, 2011 21:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save halfbyte/1158041 to your computer and use it in GitHub Desktop.
Save halfbyte/1158041 to your computer and use it in GitHub Desktop.
Small hack to test MediaElementSourceNode
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Web Audio Reading</title>
<meta name="generator" content="TextMate http://macromates.com/">
<meta name="author" content="Jan Krutisch">
<!-- Date: 2011-08-19 -->
<script type="text/javascript" charset="utf-8">
function hookPlayer() {
try {
console.log("Hooking");
var text = document.getElementById('out');
var audio = document.getElementById('audio');
var context = new webkitAudioContext();
console.log(audio);
var source = context.createMediaElementSource(audio);
console.log(source);
var context = new webkitAudioContext();
var jsNode = context.createJavaScriptNode(1024, 1, 1);
var c = 0;
jsNode.onaudioprocess = function(event) {
try {
//console.log(event);
var channels = event.inputBuffer.numberOfChannels;
//console.log(channels);
var loudness = 0.0;
var i = 0;
var leftIn = event.inputBuffer.getChannelData(1);
//console.log(leftIn[100]);
console.log(leftIn);
var leftOut = event.outputBuffer.getChannelData(0);
for(i=0;i<event.inputBuffer.length;i++) {
loudness += leftIn[i];
leftOut[i] = leftIn[i];
// event.outputBuffer[i] = event.inputBuffer[i];
}
//loudness /= event.inputBuffer.length;
c++;
text.innerHTML = "" + c;
} catch(e) {
console.log(e);
}
};
source.connect(jsNode);
jsNode.connect(context.destination);
} catch(e) {
console.log(e);
}
console.log("Hooked!");
text.innerHTML = "hook'd";
//audio.play();
};
</script>
</head>
<body onload="hookPlayer();">
<audio id="audio" src="data/funkydrummer.wav" controls="true"></audio>
<div id="out"></div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment