Browse Source

Merge branch 'yz_watch_wdklwebrtc_1.0.0' of http://git.wdklian.com/allen/ncs_android_frame into yz_watch_wdklwebrtc_1.0.0

wangjk 4 years ago
parent
commit
f000e089ee

+ 4 - 2
.idea/gradle.xml

@@ -1,14 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
+        <option name="testRunner" value="PLATFORM" />
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="modules">
           <set>
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/AmDemo_R" />
+            <option value="$PROJECT_DIR$/WebRTC" />
             <option value="$PROJECT_DIR$/app" />
             <option value="$PROJECT_DIR$/common" />
             <option value="$PROJECT_DIR$/extra" />
@@ -21,12 +24,11 @@
             <option value="$PROJECT_DIR$/setting" />
             <option value="$PROJECT_DIR$/shop" />
             <option value="$PROJECT_DIR$/starRTC" />
-            <option value="$PROJECT_DIR$/webrtc" />
             <option value="$PROJECT_DIR$/welcome" />
           </set>
         </option>
         <option name="resolveModulePerSourceSet" value="false" />
-        <option name="testRunner" value="PLATFORM" />
+        <option name="useQualifiedModuleNames" value="true" />
       </GradleProjectSettings>
     </option>
   </component>

+ 1 - 1
.idea/misc.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

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

@@ -61,7 +61,10 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
     private var gEngineKit: SkyEngineKit? = null
     private var handsFree:Boolean = false  //免提状态
 
-
+    private var CALL_TIMEOUT = 2 //多久可以再次点击
+    //呼叫倒计时
+    lateinit var countDownTimer: CountDownTimer
+    private var isClick = false //是否可点击
 
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -69,10 +72,11 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
 //        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
 //                WindowManager.LayoutParams.FLAG_FULLSCREEN)
         setContentView(R.layout.activity_web_rtc_voip_audio)
-
         if (!EventBus.getDefault().isRegistered(this)) {
             EventBus.getDefault().register(this)
         }
+        initCountDownTimer()
+        countDownTimer.start()
 
         //todo 设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
         DeviceChannel.calling = true
@@ -219,6 +223,8 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
     override fun onClick(p0: View?) {
         when (p0?.id) {
             R.id.hang_up_imagev -> {
+                if(!isClick)return
+
                 var interactionVO: InteractionVO? = null
                 if (tcpModel.data.javaClass.name == String::class.java.name) {
                     interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
@@ -283,8 +289,17 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
         }
 
     }
+    fun initCountDownTimer() {
+        countDownTimer = object : CountDownTimer(CALL_TIMEOUT * 1000L, 1000) {
+            override fun onTick(millisUntilFinished: Long) {
 
+            }
 
+            override fun onFinish() {
+                isClick = true
+            }
+        }
+    }
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
@@ -405,6 +420,9 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
         super.onDestroy()
         //todo 状态设置为未在通话中
         DeviceChannel.calling = false
+        if(countDownTimer != null){
+            countDownTimer.cancel()
+        }
         MediaPlayHelper.getInstance().stopMusic()
         EventBus.getDefault().unregister(this)
 

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

@@ -189,6 +189,7 @@ class WebRTCVoipAudioRingingActivity : Activity(), View.OnClickListener {
 
     override fun onDestroy() {
         super.onDestroy()
+        DeviceChannel.calling = false
         isAnswerOrHangUp = false
         if (countDownTimer != null) {
             countDownTimer?.cancel()

+ 2 - 0
home/src/main/java/com/wdkl/ncs/android/component/home/SOSEmergencyCallActivity.kt

@@ -35,6 +35,8 @@ class SOSEmergencyCallActivity : Activity(), View.OnClickListener {
         interactionVO = Gson().fromJson(tcpModel!!.getData().toString(), InteractionVO::class.java)
         init()
         MediaPlayHelper.getInstance().playResMusic(R.raw.sos2, 1.0f, true)
+
+
     }
 
 

+ 6 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java

@@ -34,7 +34,12 @@ public class DeviceChannel {
 
         if (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction()==TcpAction.VoiceAction.SUCCESS){
             EventBus.getDefault().post(new MessageEvent(tcpModel, 1));
-        } else if ((tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT)  //我方呼出,对方接受
+        } else if(tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.CALL &&calling){
+            InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
+            responseTcpModel = VoiceUtil.voiceCalling(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId(),interactionVO.getId());
+            //todo 给服务器发送正在通话中 tcp
+            return responseTcpModel;
+        }else if ((tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT)  //我方呼出,对方接受
             //todo:调用通话中界面;建立数据通话
             || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.REJECT) //我方呼出,对方拒绝
             //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方拒绝并停留3秒,结束至正常界面