diff --git a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
index f52ffed..11c6e83 100644
--- a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
+++ b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
@@ -101,8 +101,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:5173/";
+ //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:5173/";
int time = 0;
private VideoView currentVideo;
private SocketClient localSocketClient;
@@ -110,7 +110,7 @@ public class WebViewActivity extends BaseActivity {
// 语音听写对象
private ASR mAsr;
private boolean isrun = false; // 是否正在听写
- private boolean isdws = false; // 是否可以修正
+ private String videoAfter = "";
private String language = "zh_cn";
private TTSUtil ttsUtil;
@@ -170,18 +170,40 @@ public class WebViewActivity extends BaseActivity {
// 设置背景透明度
binding.web.setBackgroundColor(0);
binding.web.getBackground().setAlpha(0);
-
+ //初始化视频列表
Uri videoUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bg);
- videoMap.put("hat_bg",videoUri);
+ //小红帽背景
+ videoMap.put("hat_bg", videoUri);
+ //小红帽打招呼
Uri videoUri1 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.hello);
- videoMap.put("hat_hello",videoUri1);
+ videoMap.put("hat_hello", videoUri1);
+ //小红帽讲话
Uri videoUri2 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.speek);
- videoMap.put("hat_speek",videoUri2);
-
- loadingbgVideo(true);
+ videoMap.put("hat_speek", videoUri2);
+
+ //小红帽变身贵妇
+ Uri videoUri3 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.hatto);
+ videoMap.put("hat_to", videoUri3);
+ //贵妇变身小红帽
+ Uri videoUri4 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.hatback);
+ videoMap.put("hat_back", videoUri4);
+ //贵妇背景
+ Uri videoUri5 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bg1);
+ videoMap.put("hat_bg1", videoUri5);
+ Uri videoUri6 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.hello1);
+ videoMap.put("hat_hello1", videoUri6);
+ Uri videoUri7 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.speek1);
+ videoMap.put("hat_speek1", videoUri7);
+
+ loadingbgVideo();
currentVideo = binding.bgVideo;
loadingHelloVideo();
loadingSpeekVideo();
+ loadingToVideo();
+ loadingBackVideo();
+ loadingbgVideo1();
+ loadingHelloVideo1();
+ loadingSpeekVideo1();
//设置密码
initPass();
if("sbc".equals(Constant.TTSFac)){ // 思必驰
@@ -192,7 +214,7 @@ public class WebViewActivity extends BaseActivity {
ttsUtil.initTts();
}
}
- private void loadingbgVideo(Boolean isplay){
+ private void loadingbgVideo(){
binding.bgVideo.setVideoURI(videoMap.get("hat_bg"));
binding.bgVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
@@ -243,6 +265,119 @@ public class WebViewActivity extends BaseActivity {
}
});
}
+ //小红帽变 to
+ private void loadingToVideo(){
+ binding.toVideo.setVideoURI(videoMap.get("hat_to"));
+ binding.toVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mp) {
+ binding.toVideo.start();
+ }
+ });
+ binding.toVideo.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+ @Override
+ public boolean onError(MediaPlayer mp, int what, int extra) {
+ LoggerUtil.e("changeVideo: ","toVideo 播放失败");
+ return true; // 返回true表示已处理,不会弹出系统默认提示
+ }
+ });
+ binding.toVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
+ @Override
+ public void onCompletion(MediaPlayer mp) {
+ changeVideo("bg");
+ }
+ });
+ }
+ //小红帽回 back
+ private void loadingBackVideo(){
+ binding.backVideo.setVideoURI(videoMap.get("hat_back"));
+ binding.backVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mp) {
+ binding.backVideo.start();
+ }
+ });
+ binding.backVideo.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+ @Override
+ public boolean onError(MediaPlayer mp, int what, int extra) {
+ LoggerUtil.e("changeVideo: ","backVideo 播放失败");
+ return true; // 返回true表示已处理,不会弹出系统默认提示
+ }
+ });
+ binding.backVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
+ @Override
+ public void onCompletion(MediaPlayer mp) {
+ changeVideo("bg");
+ }
+ });
+ }
+ //彩蛋背景视频
+ private void loadingbgVideo1(){
+ binding.bgVideo1.setVideoURI(videoMap.get("hat_bg1"));
+ binding.bgVideo1.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mp) {
+ mp.setLooping(true); // 可选:设置循环播
+ binding.bgVideo1.start();
+ }
+ });
+ binding.bgVideo1.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+ @Override
+ public boolean onError(MediaPlayer mp, int what, int extra) {
+ LoggerUtil.e("changeVideo: ","backVideo 播放失败");
+ return true; // 返回true表示已处理,不会弹出系统默认提示
+ }
+ });
+ }
+ //彩蛋hello视频
+ private void loadingHelloVideo1(){
+ binding.helloVideo1.setVideoURI(videoMap.get("hat_hello1"));
+ binding.helloVideo1.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mp) {
+ mp.setLooping(true); // 可选:设置循环播
+ binding.helloVideo1.start();
+ }
+ });
+ binding.helloVideo1.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+ @Override
+ public boolean onError(MediaPlayer mp, int what, int extra) {
+ LoggerUtil.e("changeVideo: ","helloVideo1 播放失败");
+ return true; // 返回true表示已处理,不会弹出系统默认提示
+ }
+ });
+ }
+ //彩蛋Speek视频
+ private void loadingSpeekVideo1(){
+ binding.speekVideo1.setVideoURI(videoMap.get("hat_speek1"));
+ binding.speekVideo1.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mp) {
+ mp.setLooping(true);
+ binding.speekVideo1.start();
+ }
+ });
+ binding.speekVideo1.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+ @Override
+ public boolean onError(MediaPlayer mp, int what, int extra) {
+ LoggerUtil.e("changeVideo: ","speekVideo1 播放失败");
+ return true; // 返回true表示已处理,不会弹出系统默认提示
+ }
+ });
+ }
+
+ //切换视频状态
+ private void changeVideoAfter(){
+ try{
+ if("".equals(videoAfter)){ //新状态正常
+ changeVideo("back");
+ }else{ //新状态彩蛋
+ changeVideo("to");
+ }
+ }catch (Exception e){
+ LoggerUtil.e("ERROR: ",e.getMessage());
+ }
+ }
//切换视频
public void changeVideo(String type){
@@ -485,6 +620,18 @@ public class WebViewActivity extends BaseActivity {
handler.removeMessages(TYPE_REFURBISH_WEBVIEW);
handler.sendEmptyMessageDelayed(TYPE_REFURBISH_WEBVIEW,3000);
}
+ // h5调用android:彩蛋
+ @JavascriptInterface
+ public void changeVideoState(String txt) {
+ LoggerUtil.e(TAG,"JS调用了Android的方法:changeVideoState()");
+ videoAfter = txt;
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ changeVideoAfter();
+ }
+ });
+ }
// h5调用android:开始识别语音
@JavascriptInterface
public void startRecord() {
@@ -814,7 +961,7 @@ public class WebViewActivity extends BaseActivity {
});
localSocketClient.setOnErrorListener((ex) -> {
LoggerUtil.e("LocSocCliManager", "onError");
- SignWayUtil.reboot();
+
});
}
//销毁当前的客户端
diff --git a/app/src/main/java/qianmu/container/app/Constant.java b/app/src/main/java/qianmu/container/app/Constant.java
index 8fece7e..0c14758 100644
--- a/app/src/main/java/qianmu/container/app/Constant.java
+++ b/app/src/main/java/qianmu/container/app/Constant.java
@@ -23,7 +23,7 @@ public class Constant {
public static boolean newGuide = false; // 指路机类型,true:新版指路机 false:老板指路机(流花)
public static String mqttState = ""; // 屏幕连接方式
// public static String androidBoardType = ""; //设备板子型号 无固定版
- // public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch
+ public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch
// public static String androidBoardType = "xwst"; //设备板子型号 xwst(欣威视通3399)
// public static String androidBoardType = "xwst2"; //设备板子型号 xwst2(欣威视通3588、T982、3576)
// public static String androidBoardType = "zc"; //设备板子型号 zc(卓策主板——王府井喜悦、杨浦中心医院)
@@ -31,9 +31,9 @@ public class Constant {
// public static String androidBoardType = "nova"; //设备板子型号 诺瓦盒子 华贸LED
// public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机
// public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M
- public static String androidBoardType = "smt"; //设备板子型号 视美泰
+ // public static String androidBoardType = "smt"; //设备板子型号 视美泰
- public static String TTSFac = "sbc"; // 语音识别厂家 kdxf--科大讯飞 sbc-思必驰
+ public static String TTSFac = "kdxf"; // 语音识别厂家 kdxf--科大讯飞 sbc-思必驰
public static final String VOID_STOP = "void_stop";//
public static String whoActivity = ""; // 哪个activity页面
// 本地缓存地址
diff --git a/app/src/main/res/layout/activity_webview.xml b/app/src/main/res/layout/activity_webview.xml
index cdd62bc..44e5f50 100644
--- a/app/src/main/res/layout/activity_webview.xml
+++ b/app/src/main/res/layout/activity_webview.xml
@@ -24,6 +24,31 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
+
+
+
+
+