Browse Source

fix: 换装

sibichiAi
高志龙 8 months ago
parent
commit
dfa32e6b52
  1. 2
      app/build.gradle
  2. 182
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  3. 1
      app/src/main/java/qianmu/container/app/Constant.java
  4. 4
      app/src/main/java/qianmu/container/app/MyApplication.java

2
app/build.gradle

@ -10,7 +10,7 @@ android {
minSdkVersion 22
targetSdkVersion 30
versionCode 6
versionName "V2.0.7.30"
versionName "V2.0.7.31"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'

182
app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java

@ -78,8 +78,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;
@ -158,18 +158,34 @@ public class WebViewActivity extends BaseActivity {
Uri videoUri2 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.speek);
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)){ // 思必驰
initASR();
ttsUtil = new TTSUtil();
ttsUtil.initTts();
}
initASR();
ttsUtil = new TTSUtil();
ttsUtil.initTts();
}
private void loadingbgVideo(){
binding.bgVideo.setVideoURI(videoMap.get("hat_bg"));
@ -222,6 +238,115 @@ 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(){
if("".equals(videoAfter)){ //新状态正常
changeVideo("back");
}else{ //新状态彩蛋
changeVideo("to");
}
}
//切换视频
public void changeVideo(String type){
@ -489,20 +614,29 @@ 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() {
LoggerUtil.e(TAG,"JS调用了Android的方法:startRecord()");
if("sbc".equals(Constant.TTSFac)) {
ttsUtil.stopTTs();
stopAsr();
if(mEngine == null){
LoggerUtil.d(TAG, "未初始化");
initASR();
}
mEngine.start(aiCloudASRIntent);
}
ttsUtil.stopTTs();
stopAsr();
if(mEngine == null){
LoggerUtil.d(TAG, "未初始化");
initASR();
}
mEngine.start(aiCloudASRIntent);
runOnUiThread(new Runnable() {
@Override
public void run() {
@ -514,25 +648,19 @@ public class WebViewActivity extends BaseActivity {
@JavascriptInterface
public void stopRecord() {
LoggerUtil.e(TAG,"JS调用了Android的方法:stopRecord()");
if("sbc".equals(Constant.TTSFac)) {
stopAsr();
}
stopAsr();
}
// h5调用android:开始合成语音
@JavascriptInterface
public void startTTS(String txt) {
LoggerUtil.e(TAG,"JS调用了Android的方法:startTTS()");
if("sbc".equals(Constant.TTSFac)) {
ttsUtil.startTTs(txt);
}
ttsUtil.startTTs(txt);
}
// h5调用android:停止合成语音
@JavascriptInterface
public void stopTTS() {
LoggerUtil.e(TAG,"JS调用了Android的方法:stopTTS()");
if("sbc".equals(Constant.TTSFac)){
ttsUtil.stopTTs();
}
ttsUtil.stopTTs();
runOnUiThread(new Runnable() {
@Override
public void run() {

1
app/src/main/java/qianmu/container/app/Constant.java

@ -33,7 +33,6 @@ public class Constant {
// public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M
// public static String androidBoardType = "smt"; //设备板子型号 视美泰
public static String TTSFac = "sbc"; // 语音识别厂家 kdxf--科大讯飞 sbc-思必驰
public static final String VOID_STOP = "void_stop";//
public static String whoActivity = ""; // 哪个activity页面
// 本地缓存地址

4
app/src/main/java/qianmu/container/app/MyApplication.java

@ -84,9 +84,7 @@ public class MyApplication extends Application {
if (Constant.androidBoardType.equals("smt")) {
smdt = SmdtManagerNew.getInstance(this);
}
if(Constant.TTSFac.equals("sbc")){
initSbcSDK();
}
initSbcSDK();
// refWatcher = LeakCanary.install(this);
}

Loading…
Cancel
Save