var sampleRate = null;
var filename = _filename;
var audioBlob = null;
+ var leftchannel = [];
+ var rightchannel = [];
this.rec = function(){
-
- if (!navigator.getUserMedia)
+ if (navigator.mediaDevices.getUserMedia){
+ navigator.mediaDevices.getUserMedia({audio:true})
+ .then(onGetUserMedia)
+ .catch(function(e) {
+ console.log('Error capturing audio: ' + e.name + ': ' + e.message);
+ });
+ } else {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
-
- if (navigator.getUserMedia){
- navigator.getUserMedia({audio:true}, onGetUserMedia, function(e) {
- console.log('Error capturing audio.');
- });
- } else {
- console.log('getUserMedia not supported in this browser.');
+ if(navigator.getUserMedia) {
+ navigator.getUserMedia({audio: true}, onGetUserMedia, function(e) {
+ console.log('Error capturing audio: ' + e.name + ': ' + e.message);
+ })
+ } else {
+ console.log('getUserMedia not supported in this browser.');
+ }
}
}
this.stop = function (){
recording = false;
- audioBlob.stop();
+ var tracks = audioBlob.getAudioTracks();
+
+ tracks.forEach(function(track) {
+ track.stop();
+ });
+
recorder.disconnect();
// flat the left and right channels down
function onGetUserMedia(stream){
recording = true;
- var leftchannel = [];
- var rightchannel = [];
recordingLength = 0;
audioBlob = stream;
Lower values for buffer size will result in a lower (better) latency.
Higher values will be necessary to avoid audio breakup and glitches */
var bufferSize = 2048;
- recorder = context.createJavaScriptNode(bufferSize, 2, 2);
+ recorder = context.createScriptProcessor(bufferSize, 2, 2);
recorder.onaudioprocess = function(sample){
if (!recording) {