[6.2.4]语音转文字结果呈现

This commit is contained in:
xuxinchao
2023-12-04 17:51:47 +08:00
parent 87a2a1f227
commit c43cdbd15b
4 changed files with 92 additions and 97 deletions

View File

@@ -96,7 +96,8 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
private lateinit var viewAudioBg: ImageView
private lateinit var viewAudioButton: ImageView
private lateinit var tvAudioCountDown: TextView
private lateinit var viewAudioStart: ImageView
private lateinit var tvAudioResult: TextView
private lateinit var tvInitiativeReport: TextView
private lateinit var tvInitiativeCancel: TextView
@@ -162,7 +163,8 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
viewAudioBg = mFloatLayout.findViewById(R.id.viewAudioBg)
viewAudioButton = mFloatLayout.findViewById(R.id.viewAudioButton)
tvAudioCountDown = mFloatLayout.findViewById(R.id.tvAudioCountDown)
viewAudioStart = mFloatLayout.findViewById(R.id.viewAudioStart)
tvAudioResult = mFloatLayout.findViewById(R.id.tvAudioResult)
tvInitiativeReport = mFloatLayout.findViewById(R.id.tvInitiativeReport)
tvInitiativeCancel = mFloatLayout.findViewById(R.id.tvInitiativeCancel)
@@ -223,11 +225,10 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
}else{
//停止语音听写
mIat?.stopListening()
//结束倒计时
countDownTimer?.cancel()
countDownTimer?.onFinish()
//将倒计时置空
countDownTimer = null
//结束录音
RecordManager.getInstance().stop()
//结束动画
viewAudioStart.clearAnimation()
uploadAudio()
}
}
@@ -318,10 +319,11 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
}
Log.i(TAG, "语音内容=$resultBuffer")
reasonDetail = resultBuffer.toString()
if(!reasonDetail.isNullOrEmpty()){
tvAudioResult.text = reasonDetail
}
}
var countDownTimer: CountDownTimer?=null
private fun setAudio(status: Boolean){
if(status){
//开始录音
@@ -344,35 +346,17 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
)
scaleAnimation.duration = 1000
scaleAnimation.repeatCount = -1
viewAudioButton.startAnimation(scaleAnimation)
tvAudioCountDown.visibility = View.VISIBLE
//开始倒计时
if(countDownTimer==null){
countDownTimer = object : CountDownTimer(60000, 1000) {
override fun onTick(millisUntilFinished: Long) {
tvAudioCountDown.text = "${millisUntilFinished/1000}S"
}
override fun onFinish() {
tvAudioCountDown.visibility = View.GONE
//结束录音
RecordManager.getInstance().stop()
//结束动画
viewAudioButton.clearAnimation()
}
}
countDownTimer?.start()
}
viewAudioButton.visibility = View.GONE
viewAudioStart.visibility = View.VISIBLE
viewAudioStart.startAnimation(scaleAnimation)
tvAudioResult.text = "..."
}else{
//停止语音听写
mIat?.stopListening()
//结束倒计时
countDownTimer?.cancel()
countDownTimer?.onFinish()
//将倒计时置空
countDownTimer = null
//结束录音
RecordManager.getInstance().stop()
//结束动画
viewAudioStart.clearAnimation()
}
}

View File

@@ -3,23 +3,18 @@ package com.zhjt.mogo_core_function_devatools.badcase.biz
import android.annotation.SuppressLint
import android.app.Activity
import android.graphics.Bitmap
import android.graphics.Color
import android.graphics.PixelFormat
import android.os.Bundle
import android.os.CountDownTimer
import android.os.Handler
import android.util.DisplayMetrics
import android.util.Log
import android.view.*
import android.view.animation.Animation
import android.view.animation.ScaleAnimation
import android.widget.CheckBox
import android.widget.CompoundButton
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.flexbox.FlexboxLayout
import com.iflytek.cloud.ErrorCode
import com.iflytek.cloud.InitListener
import com.iflytek.cloud.RecognizerListener
@@ -61,13 +56,11 @@ import com.zhjt.mogo_core_function_devatools.badcase.BadCaseAnalyticsManager
import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.BadReasonListAdapter
import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseNetManager
import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore
import me.jessyan.autosize.utils.AutoSizeUtils
import org.greenrobot.eventbus.EventBus
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import java.io.File
import java.lang.Exception
import java.lang.StringBuilder
/**
@@ -112,7 +105,6 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
private var mInScreenY = 0f
private var clickListener: ClickListener? = null
var countDownTimer: CountDownTimer?=null
private lateinit var tvPassiveNum: TextView
private lateinit var tvPassiveTime: TextView
@@ -120,7 +112,8 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
private lateinit var viewAudioBg: ImageView
private lateinit var viewAudioButton: ImageView
private lateinit var tvAudioCountDown: TextView
private lateinit var viewAudioStart: ImageView
private lateinit var tvAudioResult: TextView
private lateinit var tvPassiveReport: TextView
private lateinit var tvPassiveCancel: TextView
@@ -160,8 +153,9 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
tvPassiveTime = mFloatLayout.findViewById(R.id.tvPassiveTime)
tvPassiveIdentity = mFloatLayout.findViewById(R.id.tvPassiveIdentity)
viewAudioBg = mFloatLayout.findViewById(R.id.viewAudioBg)
tvAudioResult = mFloatLayout.findViewById(R.id.tvAudioResult)
viewAudioButton = mFloatLayout.findViewById(R.id.viewAudioButton)
tvAudioCountDown = mFloatLayout.findViewById(R.id.tvAudioCountDown)
viewAudioStart = mFloatLayout.findViewById(R.id.viewAudioStart)
tvPassiveReport = mFloatLayout.findViewById(R.id.tvPassiveReport)
tvPassiveCancel = mFloatLayout.findViewById(R.id.tvPassiveCancel)
rvPassiveList = mFloatLayout.findViewById(R.id.rvPassiveList)
@@ -219,11 +213,10 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
}else{
//停止语音听写
mIat?.stopListening()
//结束倒计时
countDownTimer?.cancel()
countDownTimer?.onFinish()
//将倒计时置空
countDownTimer = null
//结束录音
RecordManager.getInstance().stop()
//结束动画
viewAudioStart.clearAnimation()
uploadAudio()
}
//删除记录
@@ -320,6 +313,9 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
}
Log.i(TAG, "语音内容=$resultBuffer")
reasonDetail = resultBuffer.toString()
if(!reasonDetail.isNullOrEmpty()){
tvAudioResult.text = reasonDetail
}
}
@@ -345,35 +341,17 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
)
scaleAnimation.duration = 1000
scaleAnimation.repeatCount = -1
viewAudioButton.startAnimation(scaleAnimation)
tvAudioCountDown.visibility = View.VISIBLE
//开始倒计时
if(countDownTimer==null){
countDownTimer = object : CountDownTimer(60000, 1000) {
override fun onTick(millisUntilFinished: Long) {
tvAudioCountDown.text = "${millisUntilFinished/1000}S"
}
override fun onFinish() {
tvAudioCountDown.visibility = View.GONE
//结束录音
RecordManager.getInstance().stop()
//结束动画
viewAudioButton.clearAnimation()
}
}
countDownTimer?.start()
}
viewAudioButton.visibility = View.GONE
viewAudioStart.visibility = View.VISIBLE
viewAudioStart.startAnimation(scaleAnimation)
tvAudioResult.text = "..."
}else{
//停止语音听写
mIat?.stopListening()
//结束倒计时
countDownTimer?.cancel()
countDownTimer?.onFinish()
//将倒计时置空
countDownTimer = null
//结束录音
RecordManager.getInstance().stop()
//结束动画
viewAudioStart.clearAnimation()
}
}

View File

@@ -104,6 +104,23 @@
android:layout_marginBottom="@dimen/dp_40"
/>
<TextView
android:id="@+id/tvAudioResult"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewAudioBg"
app:layout_constraintBottom_toBottomOf="@id/viewAudioBg"
app:layout_constraintLeft_toLeftOf="@id/viewAudioBg"
app:layout_constraintRight_toLeftOf="@id/viewAudioStart"
android:textColor="@color/white"
android:textSize="@dimen/dp_29"
android:layout_marginStart="@dimen/dp_51"
android:layout_marginEnd="@dimen/dp_51"
android:gravity="center"
android:maxLines="2"
android:ellipsize="start"
/>
<ImageView
android:id="@+id/viewAudioButton"
android:layout_width="@dimen/dp_34"
@@ -115,16 +132,16 @@
android:background="@drawable/icon_bad_case_audio_normal"
/>
<TextView
android:id="@+id/tvAudioCountDown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/dp_27"
app:layout_constraintTop_toTopOf="@id/viewAudioButton"
app:layout_constraintBottom_toBottomOf="@id/viewAudioButton"
app:layout_constraintLeft_toRightOf="@id/viewAudioButton"
android:layout_marginStart="@dimen/dp_30"
<ImageView
android:id="@+id/viewAudioStart"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_48"
app:layout_constraintTop_toTopOf="@id/viewAudioBg"
app:layout_constraintBottom_toBottomOf="@id/viewAudioBg"
app:layout_constraintRight_toRightOf="@id/viewAudioBg"
android:background="@drawable/icon_bad_case_audio_normal"
android:layout_marginEnd="@dimen/dp_51"
android:visibility="gone"
/>
</com.mogo.eagle.core.widget.RoundConstraintLayout>

View File

@@ -104,6 +104,23 @@
android:layout_marginBottom="@dimen/dp_40"
/>
<TextView
android:id="@+id/tvAudioResult"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewAudioBg"
app:layout_constraintBottom_toBottomOf="@id/viewAudioBg"
app:layout_constraintLeft_toLeftOf="@id/viewAudioBg"
app:layout_constraintRight_toLeftOf="@id/viewAudioStart"
android:textColor="@color/white"
android:textSize="@dimen/dp_29"
android:layout_marginStart="@dimen/dp_51"
android:layout_marginEnd="@dimen/dp_51"
android:gravity="center"
android:maxLines="2"
android:ellipsize="start"
/>
<ImageView
android:id="@+id/viewAudioButton"
android:layout_width="@dimen/dp_34"
@@ -115,17 +132,16 @@
android:background="@drawable/icon_bad_case_audio_normal"
/>
<TextView
android:id="@+id/tvAudioCountDown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFFFF"
android:textSize="@dimen/dp_27"
app:layout_constraintTop_toTopOf="@id/viewAudioButton"
app:layout_constraintBottom_toBottomOf="@id/viewAudioButton"
app:layout_constraintLeft_toRightOf="@id/viewAudioButton"
android:layout_marginStart="@dimen/dp_30"
<ImageView
android:id="@+id/viewAudioStart"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_48"
app:layout_constraintTop_toTopOf="@id/viewAudioBg"
app:layout_constraintBottom_toBottomOf="@id/viewAudioBg"
app:layout_constraintRight_toRightOf="@id/viewAudioBg"
android:background="@drawable/icon_bad_case_audio_normal"
android:layout_marginEnd="@dimen/dp_51"
android:visibility="gone"
/>
</com.mogo.eagle.core.widget.RoundConstraintLayout>