Selaa lähdekoodia

<修复bug: 第一次通话为语音通话则后面再进行视频通话没有画面>

weizhengliang 4 vuotta sitten
vanhempi
commit
68d6d7e341

+ 2 - 2
rtc-chat/src/main/java/com/wdkl/skywebrtc/AVEngine.java

@@ -30,11 +30,11 @@ public class AVEngine implements IEngine {
     }
 
     @Override
-    public void init(EngineCallback callback) {
+    public void init(EngineCallback callback, boolean isAudioOnly) {
         if (iEngine == null) {
             return;
         }
-        iEngine.init(callback);
+        iEngine.init(callback, isAudioOnly);
     }
 
     @Override

+ 1 - 1
rtc-chat/src/main/java/com/wdkl/skywebrtc/CallSession.java

@@ -58,7 +58,7 @@ public class CallSession implements EngineCallback {
 
         this.mEvent = event;
         iEngine = AVEngine.createEngine(new WebRTCEngine(audioOnly, context));
-        iEngine.init(this);
+        iEngine.init(this, audioOnly);
     }
 
 

+ 1 - 1
rtc-chat/src/main/java/com/wdkl/skywebrtc/engine/IEngine.java

@@ -15,7 +15,7 @@ public interface IEngine {
     /**
      * 初始化
      */
-    void init(EngineCallback callback);
+    void init(EngineCallback callback, boolean isAudioOnly);
 
     /**
      * 加入房間

+ 2 - 1
rtc-chat/src/main/java/com/wdkl/skywebrtc/engine/webrtc/WebRTCEngine.java

@@ -94,8 +94,9 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
 
     // -----------------------------------对外方法------------------------------------------
     @Override
-    public void init(EngineCallback callback) {
+    public void init(EngineCallback callback, boolean isAudioOnly) {
         mCallback = callback;
+        mIsAudioOnly = isAudioOnly;
 
         if (mRootEglBase == null) {
             mRootEglBase = EglBase.create();

+ 3 - 3
webrtc/src/main/java/com/wdkl/core/voip/CallSingleActivity.java

@@ -184,14 +184,14 @@ public class CallSingleActivity extends BaseActivity implements CallSession.Call
                     fragment.didChangeMode(true);
                 }*/
                 session.setSessionCallback(this);
-                session.toggleSpeaker(true);
+                //session.toggleSpeaker(true);
 
                 //之前已经通过tcp接受了,此时sip通话建立,直接接通
-                if (session.getState() == EnumType.CallState.Incoming) {
+                /*if (session.getState() == EnumType.CallState.Incoming) {
                     session.joinHome(session.getRoomId());
                 } else {
                     session.sendRefuse();
-                }
+                }*/
             }
         }
 

+ 5 - 0
webrtc/src/main/java/com/wdkl/core/voip/FragmentAudio.java

@@ -73,6 +73,11 @@ public class FragmentAudio extends SingleCallFragment implements View.OnClickLis
                 descTextView.setText(R.string.av_audio_invite);
                 outgoingActionContainer.setVisibility(View.GONE);
                 incomingActionContainer.setVisibility(View.VISIBLE);
+
+                if (currentSession.getState() == CallState.Incoming) {
+                    currentSession.joinHome(currentSession.getRoomId());
+                    currentSession.toggleSpeaker(true);
+                }
             }
         }
     }

+ 3 - 0
webrtc/src/main/java/com/wdkl/core/voip/FragmentVideo.java

@@ -141,6 +141,9 @@ public class FragmentVideo extends SingleCallFragment implements View.OnClickLis
                         localSurfaceView.setZOrderMediaOverlay(false);
                         fullscreenRenderer.addView(localSurfaceView);
                     }
+
+                    session.joinHome(session.getRoomId());
+                    session.toggleSpeaker(true);
                 }
             }
         }