From f80dd211f1291472227617168ee45fd6a9e96093 Mon Sep 17 00:00:00 2001 From: wujie Date: Mon, 7 Nov 2022 14:32:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E5=BC=B9=E7=AA=97=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/activity/MainActivity.java | 33 ++++++++++++------- .../business/engine/impl/TekVoiceEngine.java | 10 +++--- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index ff36d4f..f5c9091 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -25,6 +25,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; +import java.io.IOException; import java.util.Map; import chaoran.business.BrandEnum; @@ -206,6 +207,11 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ duPlayer.release(); duPlayer = null; } + if (dingPlayer != null) { + dingPlayer.stop(); + dingPlayer.release(); + dingPlayer = null; + } if (vibrator != null) { vibrator.cancel(); } @@ -252,27 +258,31 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ } private MediaPlayer diPlayer = null; private MediaPlayer duPlayer = null; + private MediaPlayer dingPlayer = null; private String ttsNr; public Vibrator vibrator; @JavascriptInterface - public void play(String msg, String type, int isZd) { + public void play(String msg, String type, int isZd) throws IOException { ttsNr = msg; if ("1".equals(type)) { - diPlayer = null; - diPlayer = MediaPlayer.create(this, R.raw.didi); - diPlayer.setOnCompletionListener(completionListener); + if (diPlayer == null) { + diPlayer = MediaPlayer.create(this, R.raw.didi); + diPlayer.setOnCompletionListener(completionListener); + } diPlayer.start(); } else if ("2".equals(type)) { - diPlayer = null; - duPlayer = MediaPlayer.create(this, R.raw.dudu); - duPlayer.setOnCompletionListener(completionListener); + if (duPlayer == null) { + duPlayer = MediaPlayer.create(this, R.raw.dudu); + duPlayer.setOnCompletionListener(completionListener); + } duPlayer.start(); } else if ("10".equals(type)) { - diPlayer = null; - duPlayer = MediaPlayer.create(this, R.raw.ding); - duPlayer.setOnCompletionListener(completionListener); - duPlayer.start(); + if (dingPlayer == null) { + dingPlayer = MediaPlayer.create(this, R.raw.ding); + dingPlayer.setOnCompletionListener(completionListener); + } + dingPlayer.start(); } else { //isZd = 1; if (voiceEngine != null) { @@ -286,6 +296,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ vibrator.vibrate(2000); } } + private MediaPlayer.OnCompletionListener completionListener = new MediaPlayer.OnCompletionListener() { // @Override public void onCompletion(MediaPlayer mp) { diff --git a/app/src/main/java/chaoran/business/engine/impl/TekVoiceEngine.java b/app/src/main/java/chaoran/business/engine/impl/TekVoiceEngine.java index 2d9dd31..56fa522 100644 --- a/app/src/main/java/chaoran/business/engine/impl/TekVoiceEngine.java +++ b/app/src/main/java/chaoran/business/engine/impl/TekVoiceEngine.java @@ -109,22 +109,22 @@ public class TekVoiceEngine extends OfflineVoiceEngine { String info) { // 合成进度 mPercentForBuffering = percent; - showTip(String.format(context.getString(R.string.tts_toast_format), - mPercentForBuffering, mPercentForPlaying)); +// showTip(String.format(context.getString(R.string.tts_toast_format), +// mPercentForBuffering, mPercentForPlaying)); } @Override public void onSpeakProgress(int percent, int beginPos, int endPos) { // 播放进度 mPercentForPlaying = percent; - showTip(String.format(context.getString(R.string.tts_toast_format), - mPercentForBuffering, mPercentForPlaying)); +// showTip(String.format(context.getString(R.string.tts_toast_format), +// mPercentForBuffering, mPercentForPlaying)); } @Override public void onCompleted(SpeechError error) { if (error == null) { - showTip("播放完成"); +// showTip("播放完成"); } else if (error != null) { showTip(error.getPlainDescription(true)); }