[Media] Fix deprecated API 05/170105/2
authorPawel Kaczmarczyk <p.kaczmarczy@samsung.com>
Thu, 8 Feb 2018 09:57:15 +0000 (10:57 +0100)
committerPawel Kaczmarczyk <p.kaczmarczy@samsung.com>
Wed, 14 Feb 2018 11:01:58 +0000 (12:01 +0100)
[Verification]
  tct-media-cordova-tizen-tests passrate 100%
  tested in Chromium console

Change-Id: I7938d1a1016c67f3862d49dabed02b2d510154a2
Signed-off-by: Pawel Kaczmarczyk <p.kaczmarczy@samsung.com>
src/lib/plugins/cordova-plugin-media/tizen/Media.js

index 0f29b19..717be92 100755 (executable)
@@ -36,25 +36,37 @@ cordova.define(plugin_name, function(require, exports, module) {
         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
@@ -100,8 +112,6 @@ cordova.define(plugin_name, function(require, exports, module) {
 
         function onGetUserMedia(stream){
             recording = true;
-            var leftchannel = [];
-            var rightchannel = [];
             recordingLength = 0;
 
             audioBlob = stream;
@@ -123,7 +133,7 @@ cordova.define(plugin_name, function(require, exports, module) {
              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) {