浏览代码

[RN] Use _switchCameras provided by lib-jitsi-meet

The functionality to use the react-native-webrtc custom API for fast switching
cameras was moved to JitsiLocalTrack in lib-jitsi-meet. Use that.

Ref: https://github.com/jitsi/lib-jitsi-meet/pull/444
j8
Saúl Ibarra Corretgé 8 年前
父节点
当前提交
37157dc9e2
共有 1 个文件被更改,包括 12 次插入17 次删除
  1. 12
    17
      react/features/base/tracks/middleware.js

+ 12
- 17
react/features/base/tracks/middleware.js 查看文件

@@ -2,6 +2,7 @@
2 2
 
3 3
 import { LIB_DID_DISPOSE, LIB_DID_INIT } from '../lib-jitsi-meet';
4 4
 import {
5
+    CAMERA_FACING_MODE,
5 6
     MEDIA_TYPE,
6 7
     SET_AUDIO_MUTED,
7 8
     SET_CAMERA_FACING_MODE,
@@ -68,29 +69,23 @@ MiddlewareRegistry.register(store => next => action => {
68 69
     case TOGGLE_CAMERA_FACING_MODE: {
69 70
         const localTrack = _getLocalTrack(store, MEDIA_TYPE.VIDEO);
70 71
         let jitsiTrack;
71
-        let mediaStreamTrack;
72
-
73
-        if (localTrack
74
-                && (jitsiTrack = localTrack.jitsiTrack)
75
-                && (mediaStreamTrack = jitsiTrack.track)) {
76
-            // XXX MediaStreamTrack._switchCamera a custom function implemented
77
-            // in react-native-webrtc for video which switches between the
78
-            // cameras via a native WebRTC library implementation without making
79
-            // any changes to the track.
80
-            // FIXME JitsiLocalTrack defines getCameraFacingMode. By calling
81
-            // _switchCamera on MediaStreamTrack without the knowledge of
82
-            // lib-jitsi-meet we are likely introducing an inconsistency in
83
-            // JitsiLocalTrack's state.
84
-            mediaStreamTrack._switchCamera();
72
+
73
+        if (localTrack && (jitsiTrack = localTrack.jitsiTrack)) {
74
+            // XXX MediaStreamTrack._switchCamera is a custom function
75
+            // implemented in react-native-webrtc for video which switches
76
+            // between the cameras via a native WebRTC library implementation
77
+            // without making any changes to the track.
78
+            jitsiTrack._switchCamera();
85 79
 
86 80
             // Don't mirror the video of the back/environment-facing camera.
87
-            // FIXME Relies on the fact that we always open the camera in
88
-            // user-facing mode first.
81
+            const mirror
82
+                = jitsiTrack.getCameraFacingMode() === CAMERA_FACING_MODE.USER;
83
+
89 84
             store.dispatch({
90 85
                 type: TRACK_UPDATED,
91 86
                 track: {
92 87
                     jitsiTrack,
93
-                    mirror: !localTrack.mirror
88
+                    mirror
94 89
                 }
95 90
             });
96 91
         }

正在加载...
取消
保存