Kaynağa Gözat

可以接听

liuzhenxing1118 8 ay önce
ebeveyn
işleme
2339cc420e

+ 18 - 3
app/src/main/java/com/xplora/xpvideo/activity/MainActivity.java

@@ -47,7 +47,7 @@ public class MainActivity extends Activity implements Listener.VideoListener {
     private Timer mTimerTask = null;
     private Timer mCallInfoTimer = null;
 
-    private int mVideoType = 1;
+    private int mVideoType = 0;
     private String mVideoId = "f471b2a1-0e5e-4796-8949-7a4cfeac5df3";
     private ContactBean mContactBean = new ContactBean();
 
@@ -82,6 +82,19 @@ public class MainActivity extends Activity implements Listener.VideoListener {
         mContentView = findViewById(R.id.video_bg);
         ImageButton acceptCancel = findViewById(R.id.acceptCancel);
         ImageButton acceptAnswer = findViewById(R.id.acceptAnswer);
+
+        acceptCancel.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mVideoManager.hangup();
+            }
+        });
+        acceptAnswer.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mVideoManager.answer();
+            }
+        });
     }
 
     @Override
@@ -94,8 +107,10 @@ public class MainActivity extends Activity implements Listener.VideoListener {
     }
 
     @Override
-    public void onCallItemAdd() {
-
+    public void onCallItemAdd(JCCallItem item) {
+        if (item.getDirection() == JCCall.DIRECTION_IN && item.getVideo()) {
+            // 2. 做出相应的处理,如在界面上显示“振铃中”
+        }
     }
 
     @Override

+ 9 - 1
app/src/main/java/com/xplora/xpvideo/manager/VideoManager.java

@@ -60,6 +60,14 @@ public class VideoManager implements JCClientCallback, JCCallCallback, JCMediaDe
         mCall.call(callId, true , new JCCall.CallParam("extraParam", "ticket"));
     }
 
+    public void answer() {
+        mCall.answer(getActiveCall(), true);
+    }
+
+    public void hangup() {
+        mCall.term(getActiveCall(), JCCall.REASON_NONE, "");
+    }
+
     public JCCallItem getActiveCall() {
         for (JCCallItem item: mCall.getCallItems()) {
             if (item.getActive())
@@ -118,7 +126,7 @@ public class VideoManager implements JCClientCallback, JCCallCallback, JCMediaDe
         if (mCall.getCallItems().size() > 0) {
             String userId = item.getUserId();
             if (mVideoListener != null) {
-                mVideoListener.onCallItemAdd();
+                mVideoListener.onCallItemAdd(item);
             }
         }
     }

+ 3 - 1
app/src/main/java/com/xplora/xpvideo/observer/Listener.java

@@ -1,9 +1,11 @@
 package com.xplora.xpvideo.observer;
 
+import com.juphoon.cloud.JCCallItem;
+
 public class Listener {
     public interface VideoListener {
         void onLoginCallback(boolean isOK);
-        void onCallItemAdd();
+        void onCallItemAdd(JCCallItem item);
         void onCallItemUpdate();
         void onCallItemRemove();
     }