Browse Source

## [1.1.17] version 36 - 2020-08-04
### Fixed
- 解决两方通话中,第三方呼出会导致全部退出的问题
- 解决一个service中注册EventBus会导致闪退的问题
### Changed
- 将home模块raw移入resource模块

allen 3 years ago
parent
commit
a3bab5443a

+ 2 - 2
build.gradle

@@ -47,12 +47,12 @@ buildscript {
     /**
      * APP版本码
      */
-    ext.app_version_code = 34
+    ext.app_version_code = 36
 
     /**
      * APP版本号
      */
-    ext.app_version = "1.1.15"
+    ext.app_version = "1.1.17"
 
     /**
      * 项目依赖库

+ 0 - 2
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt

@@ -229,8 +229,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 .subscribe {
             if (!it) {
                 showMessage("请重新授权,进入App")
-            } else {
-                showMessage("授权已完成")
             }
         }.joinManager(disposableManager)
     }

+ 44 - 24
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WebRTCVoipAudioActivity.kt

@@ -179,7 +179,6 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
                         showMessage("对方忙线中")
                     } else {
                         showMessage("通话失败,请重试")
-                        init()
                     }
                     AppTool.Time.delay(800) {
                         finish()
@@ -201,7 +200,7 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
             Handler().postDelayed({
                 //防止建立连接的时候 不能成功切换外音
                 session.toggleSpeaker(true)
-            }, 3000)
+            }, 2400)
         }
     }
 
@@ -248,11 +247,9 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
                 val voiceUtilTcpModel = VoiceUtil.voiceHandoff(Constants.deviceId, tcpModel.fromId, interactionVO.id)
                 TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson())
             }
-
-            AppTool.Time.delay(800) {
-                finish()
-            }
         }
+        gEngineKit?.endCall()
+        finish()
     }
 
     fun initCountDownTimer() {
@@ -278,18 +275,35 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
                 call_duration_tv.text = "连接中...."
                 createCallout()
             } else if (tcpModel.action == TcpAction.VoiceAction.HANDOFF) { //对方挂断
-                call_duration_tv.stop()
-                AppTool.Time.delay(800) {
+
+                var interactionVO: InteractionVO? = null
+                if (tcpModel.data.javaClass.name == String::class.java.name) {
+                    interactionVO = Gson().fromJson(this.tcpModel.data.toString(), InteractionVO::class.java)
+                } else {
+                    interactionVO = this.tcpModel.data as InteractionVO
+                }
+                val currentTnVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
+                if (interactionVO!!.id == currentTnVO.id){
+                    call_duration_tv.stop()
+                    showMessage("对方挂断")
+                    gEngineKit?.currentSession?.leave()
                     finish()
                 }
             } else if (tcpModel.action === TcpAction.VoiceAction.REJECT) {
-                //voiceStatus.setText("对方拒绝接听");
-                showMessage("对方拒绝接听")
-                AppTool.Time.delay(800) {
+                var interactionVO: InteractionVO? = null
+                if (tcpModel.data.javaClass.name == String::class.java.name) {
+                    interactionVO = Gson().fromJson(this.tcpModel.data.toString(), InteractionVO::class.java)
+                } else {
+                    interactionVO = this.tcpModel.data as InteractionVO
+                }
+                val currentTnVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
+                if (interactionVO!!.id == currentTnVO.id){
+                    showMessage("对方拒绝接听")
                     finish()
                 }
+
             } else if (tcpModel.action === TcpAction.VoiceAction.CALLING) {
-                showMessage("对方正在通话")
+                //showMessage("对方正在通话")
                 AppTool.Time.delay(800) {
                     finish()
                 }
@@ -322,9 +336,6 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
         }
         MediaPlayHelper.getInstance().stopMusic()
         EventBus.getDefault().unregister(this)
-
-        val session = gEngineKit?.currentSession
-        session?.leave()
     }
 
     override fun onResume() {
@@ -336,8 +347,11 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didDisconnected(userId: String?) {
+        //val session = gEngineKit?.currentSession
+        //Log.i(TAG+"_peer","userId : $userId <> myId = ${session?.mMyId} , targetId = ${session?.mTargetId}, roomId = ${session?.roomId}, state = ${session?.state}")
+        gEngineKit?.endCall()
         runOnUiThread(Runnable {
-            showMessage("对方挂断")
+            //showMessage("对方挂断")
             AppTool.Time.delay(800) {
                 finish()
             }
@@ -348,6 +362,7 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didError(error: String?) {
+        gEngineKit?.endCall()
         if (error != null) {
             Log.e(TAG, error)
             runOnUiThread(Runnable {
@@ -367,33 +382,34 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
         runOnUiThread(Runnable {
             when (var1) {
                 CallEndReason.Busy -> {
-                    showMessage("忙线中")
+                    showMessage("对方忙线中")
                 }
                 CallEndReason.AcceptByOtherClient -> {
                     showMessage("通话中")
                 }
                 CallEndReason.Hangup -> {
-                    //showMessage("对方挂起")
+                    //showMessage("挂断")
                 }
                 CallEndReason.MediaError -> {
-                    showMessage("系统错误,请重试")
+                    showMessage("媒体错误")
                 }
                 CallEndReason.OpenCameraFailure -> {
                     showMessage("打开摄像头错误")
                 }
                 CallEndReason.RemoteHangup -> {
-                    showMessage("对方挂断")
+                    //showMessage("对方挂断")
                 }
                 CallEndReason.RemoteSignalError -> {
-                    showMessage("对方信号出错")
+                    showMessage("对方网络断开")
                 }
                 CallEndReason.SignalError -> {
-                    showMessage("信号错误")
+                    showMessage("连接断开")
                 }
                 CallEndReason.Timeout -> {
-                    showMessage("连接超时")
+                    showMessage("对方未接听")
                 }
             }
+            //gEngineKit?.endCall()
             AppTool.Time.delay(800) {
                 finish()
             }
@@ -404,6 +420,10 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didUserLeave(userId: String?) {
-        finish()
+        gEngineKit?.endCall()
+        runOnUiThread {
+            showMessage("用户 $userId 离开")
+            finish()
+        }
     }
 }

+ 4 - 1
home/src/main/code/com/wdkl/ncs/android/component/home/service/WdKeepAliveService.kt

@@ -300,6 +300,9 @@ class WdKeepAliveService : AbsWorkService() {
             checkNetStateTimer = Timer()
             checkNetStateTimerTask = object : TimerTask() {
                 override fun run() {
+                    if (!EventBus.getDefault().isRegistered(this@WdKeepAliveService)) {
+                        EventBus.getDefault().register(this@WdKeepAliveService)
+                    }
                     TcpClient.getInstance().sendMsg("0")
 
                     //socket 重连
@@ -324,7 +327,7 @@ class WdKeepAliveService : AbsWorkService() {
                     }
                 }
             }
-            checkNetStateTimer!!.schedule(checkNetStateTimerTask, 18000, Constants.heartBeat * 1000L)
+            checkNetStateTimer!!.schedule(checkNetStateTimerTask, 8000, Constants.heartBeat * 1000L)
         }
     }
 }

+ 1 - 0
libwebrtc/src/main/java/sdk/android/api/org/webrtc/PeerConnectionFactory.java

@@ -244,6 +244,7 @@ public class PeerConnectionFactory {
         audioDeviceModule = JavaAudioDeviceModule.builder(ContextUtils.getApplicationContext())
                                 .createAudioDeviceModule();
       }
+
       return nativeCreatePeerConnectionFactory(ContextUtils.getApplicationContext(), options,
           audioDeviceModule.getNativeAudioDeviceModulePointer(),
           audioEncoderFactoryFactory.createNativeAudioEncoderFactory(),

+ 10 - 1
readme.md

@@ -26,7 +26,16 @@
 
 ---
 
-## [1.1.15] version 34 - 2020-08-02
+## [1.1.17] version 36 - 2020-08-04
+### Fixed
+- 解决两方通话中,第三方呼出会导致全部退出的问题
+- 解决一个service中注册EventBus会导致闪退的问题
+### Changed
+- 将home模块raw移入resource模块
+
+---
+
+## [1.1.15] version 34 - 2020-08-03
 ### Fixed
 - 在对话界面增加对通话状态的监听并进行相应的处理
 - 如果呼出信号正常,界面失败。接收方在进入通话后会自动挂断并提示对方已挂断

home/src/main/res/raw/incoming_call.mp3 → resource/src/main/res/raw/incoming_call.mp3


home/src/main/res/raw/outgoing_call.mp3 → resource/src/main/res/raw/outgoing_call.mp3


home/src/main/res/raw/raw.xml → resource/src/main/res/raw/raw.xml


home/src/main/res/raw/sos.wav → resource/src/main/res/raw/sos.wav


home/src/main/res/raw/sos2.wav → resource/src/main/res/raw/sos2.wav


+ 3 - 0
rtc-chat/src/main/java/com/wdkl/skywebrtc/engine/webrtc/WebRTCEngine.java

@@ -585,6 +585,9 @@ numb.viagenie.ca
                 true,
                 true);
         decoderFactory = new DefaultVideoDecoderFactory(mRootEglBase.getEglBaseContext());
+        if (encoderFactory == null || decoderFactory == null){
+
+        }
 
         // 构造Factory
         AudioDeviceModule audioDeviceModule = JavaAudioDeviceModule.builder(mContext).createAudioDeviceModule();