瀏覽代碼

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,6 +49,9 @@ KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_IEXPLORER] =
49 49
     KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
50 50
 KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_SAFARI] =
51 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 56
  * Calculates packet lost percent using the number of lost packets and the
54 57
  * number of all packet.
@@ -466,6 +469,23 @@ StatsCollector.prototype._defineGetStatValueMethod = function (keys) {
466 469
         // retrieve the value associated with a specific key.
467 470
         itemStatByKey = function (item, key) { return item.stat(key) };
468 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 489
     default:
470 490
         itemStatByKey = function (item, key) { return item[key] };
471 491
     }

+ 3
- 1
modules/xmpp/TraceablePeerConnection.js 查看文件

@@ -642,7 +642,9 @@ TraceablePeerConnection.prototype.addIceCandidate
642 642
 
643 643
 TraceablePeerConnection.prototype.getStats = function(callback, errback) {
644 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 648
         // ignore for now...
647 649
         if(!errback)
648 650
             errback = function () {};

Loading…
取消
儲存