[6.6.0][调试面板] feat: 调试面板增加语音中心,可以输入文案进行 TTS 播报调试;

This commit is contained in:
aibingbing
2024-08-13 14:56:45 +08:00
parent d5fbbf7028
commit 10ad940833
2 changed files with 105 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.os.Process
import android.text.Html
import android.text.TextUtils
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
@@ -31,10 +32,12 @@ import com.mogo.cloud.network.cronet.NetworkQualityListener
import com.mogo.cloud.network.cronet.QuicConfig
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.constants.SharedPrefsConstants
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
@@ -101,6 +104,7 @@ import com.mogo.map.uicontroller.VisualAngleMode
import com.mogo.map.uicontroller.VisualAngleMode.*
import com.mogo.test.crashreport.CrashReportConstants
import com.mogo.test.crashreport.ITestCrashReportProvider
import com.mogo.tts.base.IMogoTTSCallback
import com.zhidaoauto.map.data.road.RoadCross
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.service.chain.ChainLog
@@ -557,6 +561,55 @@ internal class DebugSettingView @JvmOverloads constructor(
}
}
/**
* 语音中心
*/
tbTTSCenter.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示语音中心
ttsCenterContainer.visibility = View.VISIBLE
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏语音中心
ttsCenterContainer.visibility = View.GONE
}
}
etTTSContent.setOnFocusChangeListener { v, hasFocus ->
KeyboardUtils.showSoftInput()
}
btnStartTTS.setOnClickListener {
val content = etTTSContent.editableText.toString()
if (TextUtils.isEmpty(content)) {
ToastUtils.showShort("请输入语音播报内容")
return@setOnClickListener
}
UiThreadHandler.post {
AIAssist.getInstance(AbsMogoApplication.getApp())
.speakTTSVoiceWithLevel(content, AIAssist.LEVEL0, object: IMogoTTSCallback {
override fun onSpeakStart(speakText: String?) {
super.onSpeakStart(speakText)
ToastUtils.showShort("onSpeakStart -> $speakText")
}
override fun onSpeakEnd(speakText: String?) {
super.onSpeakEnd(speakText)
ToastUtils.showShort("onSpeakEnd -> $speakText")
}
override fun onSpeakError(speakText: String?, errorMsg: String?) {
super.onSpeakError(speakText, errorMsg)
ToastUtils.showShort("onSpeakError -> $speakText")
}
override fun onStopTts(speakText: String?) {
super.onStopTts(speakText)
ToastUtils.showShort("onStopTts -> $speakText")
}
})
}
}
/**
* 日志中心
*/

View File

@@ -2469,6 +2469,58 @@
</LinearLayout>
</LinearLayout>
<ToggleButton
android:id="@+id/tbTTSCenter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_10"
android:background="@drawable/radio_button_normal_background_right"
android:drawableEnd="@drawable/icon_right"
android:padding="@dimen/dp_20"
android:textOff="语音中心"
android:textOn="语音中心"
android:textSize="@dimen/dp_24" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ttsCenterContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/etTTSContent"
android:layout_width="0dp"
android:layout_height="@dimen/dp_80"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginBottom="@dimen/dp_10"
android:background="@drawable/debug_setting_edit_bg"
android:gravity="center"
android:minLines="2"
android:text=""
android:hint="请点击输入语音播报内容"
android:textColor="#1A1A1A"
android:textSize="@dimen/dp_24"
app:layout_constraintWidth_default="spread"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@id/btnStartTTS"/>
<Button
android:id="@+id/btnStartTTS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/dp_20"
android:text="开始播报"
android:textSize="@dimen/dp_24"
app:layout_constraintTop_toTopOf="@id/etTTSContent"
app:layout_constraintBottom_toBottomOf="@id/etTTSContent"
app:layout_constraintLeft_toRightOf="@id/etTTSContent"
app:layout_constraintRight_toRightOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<ToggleButton
android:id="@+id/tbCronet"
android:layout_width="match_parent"