|
|
|
@ -108,8 +108,8 @@ public class WebViewActivity extends BaseActivity { |
|
|
|
static final int TYPE_GO_SAVESCREEN = 300;//导视通知跳转屏保
|
|
|
|
static final int TYPE_HINT_PASSWORD = 3;//隐藏密码输入框
|
|
|
|
static final int TYPE_START_SERVER = 4;//重新启动web服务
|
|
|
|
static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址 http://192.168.1.218:5173/
|
|
|
|
// static String HtmlUrl = "http://192.168.1.196:5500/index.html";
|
|
|
|
//static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址 http://192.168.1.218:5173/
|
|
|
|
static String HtmlUrl = "http://192.168.1.196:5500/index.html"; |
|
|
|
int time = 0; |
|
|
|
private VideoView currentVideo; |
|
|
|
private VideoView proVideo; // 当前正在切换的目标视频
|
|
|
|
@ -945,15 +945,15 @@ public class WebViewActivity extends BaseActivity { |
|
|
|
public void connectLocalSocket() { |
|
|
|
try { |
|
|
|
//客户端不存在时 创建客户端设置监听事件
|
|
|
|
if (localSocketClient == null) initLocalSocketClient(); |
|
|
|
boolean open = localSocketClient.isOpen(); |
|
|
|
LoggerUtil.e("connectLocalSocket", "socket客户端连接状态:open="+open); |
|
|
|
if (open){ |
|
|
|
if (localSocketClient != null && |
|
|
|
localSocketClient.getReadyState() == ReadyState.OPEN) { |
|
|
|
LoggerUtil.e("connectLocalSocket", "socket客户端连接状态:open"); |
|
|
|
countConect = 0; |
|
|
|
return; |
|
|
|
return; // 连接正常,直接返回
|
|
|
|
} |
|
|
|
countConect++; |
|
|
|
if (localSocketClient == null) initLocalSocketClient(); |
|
|
|
localSocketClient.connect(); |
|
|
|
countConect++; |
|
|
|
if(countConect>=100){ |
|
|
|
LoggerUtil.e("Socket: ", "socket未连接,设备重启"); |
|
|
|
} |
|
|
|
@ -974,7 +974,6 @@ public class WebViewActivity extends BaseActivity { |
|
|
|
localSocketClient.send(StringUtil.strSplice("{\"method\":\"/asr/stop\"}")); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
localSocketClient.setOnMessageListener((conn, message) -> { |
|
|
|
try { |
|
|
|
TTSMessage messageBean = new Gson().fromJson(message, TTSMessage.class); |
|
|
|
@ -1044,7 +1043,9 @@ public class WebViewActivity extends BaseActivity { |
|
|
|
private void scheduleReconnect() { |
|
|
|
destroyLocalSocketClient(); |
|
|
|
mainHandler.removeCallbacks(delayedTask); |
|
|
|
mainHandler.postDelayed(delayedTask, 6000); // 3秒后重连
|
|
|
|
mainHandler.postDelayed(() -> { |
|
|
|
new Thread(() -> connectLocalSocket()).start(); |
|
|
|
}, 6000); // 3秒后重连
|
|
|
|
} |
|
|
|
private Runnable delayedTask = new Runnable() { |
|
|
|
@Override |
|
|
|
@ -1055,7 +1056,18 @@ public class WebViewActivity extends BaseActivity { |
|
|
|
//销毁当前的客户端
|
|
|
|
public void destroyLocalSocketClient() { |
|
|
|
if (localSocketClient == null) return; |
|
|
|
localSocketClient.close(); |
|
|
|
localSocketClient = null; |
|
|
|
try { |
|
|
|
if (localSocketClient != null) { |
|
|
|
// 避免在已关闭或未打开的状态下再次关闭
|
|
|
|
if (localSocketClient.isOpen()) { |
|
|
|
localSocketClient.close(); // 主动发送关闭帧
|
|
|
|
} |
|
|
|
localSocketClient = null; |
|
|
|
} |
|
|
|
} catch (Throwable t) { |
|
|
|
// 这里必须捕获所有异常,防止它传播出去导致进程崩溃
|
|
|
|
LoggerUtil.e("destroyLocalSocketClient", "清理时发生异常"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|