Преглед изворни кода

Support statistics on React Native

dev1
Lyubomir Marinov пре 9 година
родитељ
комит
770ffa085e
2 измењених фајлова са 23 додато и 1 уклоњено
  1. 20
    0
      modules/statistics/RTPStatsCollector.js
  2. 3
    1
      modules/xmpp/TraceablePeerConnection.js

+ 20
- 0
modules/statistics/RTPStatsCollector.js Прегледај датотеку

49
     KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
49
     KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
50
 KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_SAFARI] =
50
 KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_SAFARI] =
51
     KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
51
     KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
52
+KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_REACT_NATIVE] =
53
+    KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
54
+
52
 /**
55
 /**
53
  * Calculates packet lost percent using the number of lost packets and the
56
  * Calculates packet lost percent using the number of lost packets and the
54
  * number of all packet.
57
  * number of all packet.
466
         // retrieve the value associated with a specific key.
469
         // retrieve the value associated with a specific key.
467
         itemStatByKey = function (item, key) { return item.stat(key) };
470
         itemStatByKey = function (item, key) { return item.stat(key) };
468
         break;
471
         break;
472
+    case RTCBrowserType.RTC_BROWSER_REACT_NATIVE:
473
+        // The implementation provided by react-native-webrtc follows the
474
+        // Objective-C WebRTC API: RTCStatsReport has a values property of type
475
+        // Array in which each element is a key-value pair.
476
+        itemStatByKey = function (item, key) {
477
+            var value;
478
+            item.values.some(function (pair) {
479
+                if (pair.hasOwnProperty(key)) {
480
+                    value = pair[key];
481
+                    return true;
482
+                } else {
483
+                    return false;
484
+                }
485
+            });
486
+            return value;
487
+        };
488
+        break;
469
     default:
489
     default:
470
         itemStatByKey = function (item, key) { return item[key] };
490
         itemStatByKey = function (item, key) { return item[key] };
471
     }
491
     }

+ 3
- 1
modules/xmpp/TraceablePeerConnection.js Прегледај датотеку

642
 
642
 
643
 TraceablePeerConnection.prototype.getStats = function(callback, errback) {
643
 TraceablePeerConnection.prototype.getStats = function(callback, errback) {
644
     // TODO: Is this the correct way to handle Opera, Temasys?
644
     // TODO: Is this the correct way to handle Opera, Temasys?
645
-    if (RTCBrowserType.isFirefox() || RTCBrowserType.isTemasysPluginUsed()) {
645
+    if (RTCBrowserType.isFirefox()
646
+            || RTCBrowserType.isTemasysPluginUsed()
647
+            || RTCBrowserType.isReactNative()) {
646
         // ignore for now...
648
         // ignore for now...
647
         if(!errback)
649
         if(!errback)
648
             errback = function () {};
650
             errback = function () {};

Loading…
Откажи
Сачувај