From 7fabc4f1b61835c70af78c0e06b89c422c011499 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Mon, 24 Oct 2022 18:18:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E8=BD=AC=E6=96=87=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imrongcloud/RongcloudIMManager.java | 6 +- .../common/views/weight/Recognizer.java | 362 ------------------ .../main/res/mipmap-xxhdpi/icon_withdraw.png | Bin 0 -> 2949 bytes .../res/mipmap-xxhdpi/voice_fluctuations.gif | Bin 0 -> 93331 bytes .../live/activity/LiveAudienceActivity.java | 19 +- .../yunbao/live/dialog/TextHintDialog.java | 48 +++ .../com/yunbao/live/dialog/VoiceDialog.java | 292 ++++++++++++++ .../yunbao/live/event/LiveAudienceEvent.java | 13 +- .../live/views/LiveAudienceViewHolder.java | 64 +++- live/src/main/res/drawable/bg_voice_chat.xml | 5 + .../main/res/layout/activity_live_detail.xml | 9 +- .../main/res/layout/view_live_audience.xml | 15 +- live/src/main/res/layout/view_text_hint.xml | 15 + .../src/main/res/layout/view_voice_dialog.xml | 55 +++ .../res/mipmap-xxxhdpi/icon_voice_press.png | Bin 0 -> 28843 bytes live/src/main/res/mipmap-xxxhdpi/img_p.png | Bin 0 -> 1654 bytes live/src/main/res/values/strings.xml | 3 + .../yunbao/main/activity/MainActivity.java | 11 +- .../yunbao/main/activity/TestActivity.java | 12 - main/src/main/res/layout/activity_test.xml | 6 - 20 files changed, 532 insertions(+), 403 deletions(-) delete mode 100644 common/src/main/java/com/yunbao/common/views/weight/Recognizer.java create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_withdraw.png create mode 100644 common/src/main/res/mipmap-xxhdpi/voice_fluctuations.gif create mode 100644 live/src/main/java/com/yunbao/live/dialog/TextHintDialog.java create mode 100644 live/src/main/java/com/yunbao/live/dialog/VoiceDialog.java create mode 100644 live/src/main/res/drawable/bg_voice_chat.xml create mode 100644 live/src/main/res/layout/view_text_hint.xml create mode 100644 live/src/main/res/layout/view_voice_dialog.xml create mode 100644 live/src/main/res/mipmap-xxxhdpi/icon_voice_press.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/img_p.png diff --git a/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java b/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java index abf9f7b62..ae27de871 100644 --- a/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java +++ b/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java @@ -12,11 +12,12 @@ import androidx.annotation.NonNull; import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; +import com.iflytek.cloud.SpeechConstant; +import com.iflytek.cloud.SpeechUtility; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.event.RongIMConnectionStatusEvent; import com.yunbao.common.manager.IMLoginManager; -import com.yunbao.common.views.weight.Recognizer; import org.greenrobot.eventbus.EventBus; @@ -61,7 +62,8 @@ public class RongcloudIMManager { Log.e(CLASSNAME, "initRongIM:"); initPhotoGlide(); //初始化科大讯飞语音转文字 - Recognizer.setAppId("671d2ae3"); + String params = SpeechConstant.APPID + "=" + "671d2ae3"; + SpeechUtility.createUtility(application.getApplicationContext(), params); } private static RongIMClient.OnReceiveMessageWrapperListener mListener; diff --git a/common/src/main/java/com/yunbao/common/views/weight/Recognizer.java b/common/src/main/java/com/yunbao/common/views/weight/Recognizer.java deleted file mode 100644 index e566f5f6c..000000000 --- a/common/src/main/java/com/yunbao/common/views/weight/Recognizer.java +++ /dev/null @@ -1,362 +0,0 @@ -package com.yunbao.common.views.weight; - -import android.content.Context; -import android.graphics.drawable.AnimationDrawable; -import android.os.Bundle; -import android.util.AttributeSet; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import android.widget.Toast; - -import com.iflytek.cloud.ErrorCode; -import com.iflytek.cloud.InitListener; -import com.iflytek.cloud.RecognizerListener; -import com.iflytek.cloud.RecognizerResult; -import com.iflytek.cloud.SpeechConstant; -import com.iflytek.cloud.SpeechError; -import com.iflytek.cloud.SpeechRecognizer; -import com.iflytek.cloud.SpeechUtility; -import com.yunbao.common.R; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.json.JSONTokener; - -import java.util.Locale; -import java.util.Random; - - -public class Recognizer extends RelativeLayout { - private static final String TAG = "Recognizer"; - - private ImageView imgMic; - - private Random random; - private IRecognizedResult mResultCallBack; - private SpeechRecognizer mIat = null; - private AnimationDrawable animStart; - private AnimationDrawable animEnd; - private static String mAppId; - - /** - * 开发者可以通过此接口设置自己从科大讯飞官网申请的 appId。 此方法可以在 SDK init 之后调用。 - * - *

注意: appid 必须和下载的SDK保持一致,否则会出现10407错误 - * - * @param appId 自定义的 appId - */ - public static void setAppId(String appId) { - mAppId = appId; - } - - public Recognizer(Context context) { - super(context); - initViews(); - } - - public Recognizer(Context context, AttributeSet attrs) { - super(context, attrs); - initViews(); - } - - private void initViews() { -// setClickable(true); -// setBackgroundColor(getResources().getColor(R.color.white)); -// RelativeLayout recognizerContainer = -// (RelativeLayout) -// LayoutInflater.from(getContext()) -// .inflate(R.layout.rc_view_recognizer, null); -// View rlMic = recognizerContainer.findViewById(R.id.rl_mic); -// rlMic.setOnClickListener( -// new OnClickListener() { -// @Override -// public void onClick(View view) { -// if (mIat == null || !mIat.isListening()) { -// startRecognize(); -// } else { -// reset(); -// } -// } -// }); -// imgMic = (ImageView) recognizerContainer.findViewById(R.id.img_mic); -// -// -// addView(recognizerContainer); -// random = new Random(); -// String params = SpeechConstant.APPID + "=" + mAppId; -// SpeechUtility.createUtility(getContext().getApplicationContext(), params); - } - - /** - * 初始化监听器。 - */ - private static InitListener mInitListener = - new InitListener() { - - @Override - public void onInit(int code) { - Log.e(TAG, "onInit " + code); - } - }; - - public void startRecognize() { -// if (null == mIat) { -// mIat = SpeechRecognizer.createRecognizer(getContext(), mInitListener); -// } -// if (mIat.isListening()) { -// return; -// } -// setParam(); -// int ret = mIat.startListening(this); -// if (ret != ErrorCode.SUCCESS) { -// Log.e(TAG, "startRecognize ret error " + ret); -// } - } - - /** - * 参数设置,设置听写参数,详见《科大讯飞MSC API手册(Android)》SpeechConstant类 - * - * @param - * @return - */ - private void setParam() { - // 清空参数 - mIat.setParameter(SpeechConstant.PARAMS, null); - - // 设置听写引擎 - mIat.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); - // 设置返回结果格式 - mIat.setParameter(SpeechConstant.RESULT_TYPE, "json"); - - mIat.setParameter(SpeechConstant.DOMAIN, "iat"); - if ("zh".equals(Locale.getDefault().getLanguage().toLowerCase())) { - mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn"); - mIat.setParameter(SpeechConstant.ACCENT, "mandarin "); - } else { - mIat.setParameter(SpeechConstant.LANGUAGE, "en_us"); - } - // 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理 - mIat.setParameter(SpeechConstant.VAD_BOS, "4000"); - // 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音 - mIat.setParameter(SpeechConstant.VAD_EOS, "1000"); - // 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点 - mIat.setParameter(SpeechConstant.ASR_PTT, "1"); - } - - private void setRandomImageResource() { -// int num = random.nextInt(3) + 1; -// switch (num) { -// case 1: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_01); -// break; -// case 2: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_02); -// break; -// default: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_03); -// break; -// } - } - - private void changeVolume(int volume) { -// if (null != imgMic) { -// switch (volume / 2) { -// case 0: -// setRandomImageResource(); -// break; -// case 1: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_02); -// break; -// case 2: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_03); -// break; -// case 3: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_04); -// break; -// case 4: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_05); -// break; -// case 5: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_06); -// break; -// case 6: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_07); -// break; -// case 7: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_08); -// break; -// case 8: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_09); -// break; -// case 9: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_10); -// break; -// case 10: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_11); -// break; -// case 11: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_12); -// break; -// case 12: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_13); -// break; -// default: -// imgMic.setImageResource(R.mipmap.rc_recognize_volume_14); -// break; -// } -// } - } - - private void endOfSpeech() { -// if (null == imgMic) return; -// imgMic.setImageResource(R.drawable.rc_anim_speech_end); -// animEnd = (AnimationDrawable) imgMic.getDrawable(); -// imgMic.clearAnimation(); -// animEnd.start(); - } - - private void beginOfSpeech() { -// if (null == imgMic) return; -// imgMic.setImageResource(R.drawable.rc_anim_speech_start); -// animStart = (AnimationDrawable) imgMic.getDrawable(); -// imgMic.clearAnimation(); -// animStart.start(); - } - - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (null != mIat) { - mIat.cancel(); - mIat.destroy(); - mIat = null; - } - if (null != mResultCallBack) { - mResultCallBack = null; - } - if (animEnd != null) { - animEnd.stop(); - animEnd = null; - } - if (animStart != null) { - animStart.stop(); - animEnd = null; - } - mInitListener = null; - } - - private void printResult(RecognizerResult result) { - String json = result.getResultString(); - String text = parseRecognizeResult(result); - Log.e(TAG, "printResult " + text); - try { - JSONObject obj = new JSONObject(json); - boolean isLast = obj.getBoolean("ls"); - if (isLast) { - endOfSpeech(); - } - } catch (JSONException e) { - e.printStackTrace(); - } - - if (mResultCallBack != null) { - mResultCallBack.onResult(text); - } - } -// -// @Override -// public void onResult(RecognizerResult recognizerResult, boolean b) { -// printResult(recognizerResult); -// if (imgMic != null) { -// imgMic.setImageResource(R.mipmap.rc_recognize_disable); -// } -// } -// -// @Override -// public void onError(SpeechError speechError) { -// if (speechError.getErrorCode() == ErrorCode.ERROR_NO_NETWORK) { -// Toast.makeText( -// getContext(), -// getContext().getString(R.string.load_failure), -// Toast.LENGTH_SHORT) -// .show(); -// } -// if (imgMic != null) { -// imgMic.setImageResource(R.mipmap.rc_recognize_disable); -// } -// } -// -// @Override -// public void onEvent(int eventType, int i1, int i2, Bundle bundle) { -// Log.e(TAG, "RecognizerView onEvent eventType: " + eventType); -// } -// -// @Override -// public void onVolumeChanged(int volume, byte[] bytes) { -// changeVolume(volume); -// } -// -// @Override -// public void onBeginOfSpeech() { -// Log.e(TAG, "RecognizerView onBeginOfSpeech"); -// beginOfSpeech(); -// } -// -// @Override -// public void onEndOfSpeech() { -// Log.e(TAG, "RecognizerView onEndOfSpeech"); -// endOfSpeech(); -// } - - public void setCallBack(IRecognizedResult resultCallBack) { - mResultCallBack = resultCallBack; - } - - private void reset() { - if (null != mIat) { - mIat.cancel(); - mIat.destroy(); - mIat = null; - } - if (null != animEnd) { - animEnd.stop(); - animEnd = null; - } - if (animStart != null) { - animStart.stop(); - animStart = null; - } - if (imgMic != null) { -// imgMic.setImageResource(R.mipmap.rc_recognize_disable); - } - } - - public String parseRecognizeResult(RecognizerResult results) { - StringBuilder ret = new StringBuilder(); - try { - JSONTokener jsonTokener = new JSONTokener(results.getResultString()); - JSONObject jsonObject = new JSONObject(jsonTokener); - - JSONArray words = jsonObject.getJSONArray("ws"); - for (int i = 0; i < words.length(); i++) { - // 转写结果词,默认使用第一个结果 - JSONArray items = words.getJSONObject(i).getJSONArray("cw"); - JSONObject obj = items.getJSONObject(0); - ret.append(obj.getString("w")); - // 如果需要多候选结果,解析数组其他字段 - // for(int j = 0; j < items.length(); j++) - // { - // JSONObject obj = items.getJSONObject(j); - // ret.append(obj.getString("w")); - // } - } - } catch (Exception e) { - e.printStackTrace(); - } - return ret.toString(); - } -} diff --git a/common/src/main/res/mipmap-xxhdpi/icon_withdraw.png b/common/src/main/res/mipmap-xxhdpi/icon_withdraw.png new file mode 100644 index 0000000000000000000000000000000000000000..f92d292a45a77cefcf8f090f3518b1dcfe9fccdd GIT binary patch literal 2949 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

%Aju; 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 literal 0 HcmV?d00001 diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java index 2bdd4222f..98cd7738e 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -139,6 +139,7 @@ public class LiveAudienceActivity extends LiveActivity { private int liveBg = 0; //直播间进入房间队列 private Handler liveHandler = new Handler(); + private ImageView voicePress; @Override public T findViewById(@IdRes int id) { @@ -178,7 +179,7 @@ public class LiveAudienceActivity extends LiveActivity { private void initView() { // 竖直滑动 ViewPager verticalViewPager = findViewById(R.id.view_pager); - + voicePress = findViewById(R.id.voice_press); verticalViewPager.setEnableScroll(IMLoginManager.get(mContext).isSlide()); //判断是否有直播悬浮窗,有直接关闭 if (EasyFloat.isShow("LiveFloatView")) { @@ -623,7 +624,7 @@ public class LiveAudienceActivity extends LiveActivity { } public void setEnableScroll(boolean enableScroll) { - verticalViewPager.setEnableScroll(enableScroll); + verticalViewPager.setEnableScroll(IMLoginManager.get(mContext).isSlide()); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -645,7 +646,7 @@ public class LiveAudienceActivity extends LiveActivity { manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK); } } else { - verticalViewPager.setEnableScroll(true); + verticalViewPager.setEnableScroll(IMLoginManager.get(mContext).isSlide()); } } @@ -908,6 +909,18 @@ public class LiveAudienceActivity extends LiveActivity { case MESSAGE_BOTTOM: manager.messageBottom(); break; + case VOICE_PRESS: + voicePress.setVisibility(event.isVoicePress() ? View.VISIBLE : View.GONE); + if (IMLoginManager.get(mContext).isSlide()) { + if (event.isVoicePress()) { + verticalViewPager.setEnableScroll(false); + } else { + verticalViewPager.setEnableScroll(true); + } + } + + break; + } diff --git a/live/src/main/java/com/yunbao/live/dialog/TextHintDialog.java b/live/src/main/java/com/yunbao/live/dialog/TextHintDialog.java new file mode 100644 index 000000000..0ac78c6ac --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/TextHintDialog.java @@ -0,0 +1,48 @@ +package com.yunbao.live.dialog; + +import android.os.Bundle; +import android.os.Handler; +import android.view.Gravity; +import android.view.Window; +import android.view.WindowManager; + +import com.yunbao.common.dialog.AbsDialogFragment; +import com.yunbao.common.utils.DpUtil; +import com.yunbao.live.R; + +public class TextHintDialog extends AbsDialogFragment { + + + @Override + protected int getLayoutId() { + return R.layout.view_text_hint; + } + + @Override + protected int getDialogStyle() { + return R.style.dialog4; + } + + @Override + protected boolean canCancel() { + return false; + } + + @Override + protected void setWindowAttributes(Window window) { + window.setWindowAnimations(com.yunbao.common.R.style.bottomToTopAnim); + WindowManager.LayoutParams params = window.getAttributes(); + params.width = DpUtil.dp2px(309); + params.height = DpUtil.dp2px(44); + params.gravity = Gravity.CENTER; + window.setAttributes(params); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + new Handler().postDelayed(() -> dismiss(), 2000); + } + + +} diff --git a/live/src/main/java/com/yunbao/live/dialog/VoiceDialog.java b/live/src/main/java/com/yunbao/live/dialog/VoiceDialog.java new file mode 100644 index 000000000..ae8294607 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/VoiceDialog.java @@ -0,0 +1,292 @@ +package com.yunbao.live.dialog; + +import android.os.Bundle; +import android.text.SpannableStringBuilder; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.iflytek.cloud.ErrorCode; +import com.iflytek.cloud.InitListener; +import com.iflytek.cloud.RecognizerListener; +import com.iflytek.cloud.RecognizerResult; +import com.iflytek.cloud.SpeechConstant; +import com.iflytek.cloud.SpeechError; +import com.iflytek.cloud.SpeechRecognizer; +import com.yunbao.common.dialog.AbsDialogFragment; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.DpUtil; +import com.yunbao.live.R; +import com.yunbao.live.activity.LiveAudienceActivity; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.json.JSONTokener; + +import java.util.Locale; + +import pl.droidsonroids.gif.GifImageView; + +public class VoiceDialog extends AbsDialogFragment { + // 语音识别对象 + private SpeechRecognizer mIat = null; + private String TAG = "VoiceDialog"; + private ImageView voiceFluctuations, iconWithdraw; + private TextView voiceChat, fingersSlide; + private GifImageView gifView; + private SpannableStringBuilder builder = new SpannableStringBuilder(); + private boolean isSend = true; + + public boolean isSend() { + return isSend; + } + + @Override + public void onStop() { + super.onStop(); + if (mIat != null) { + mIat.cancel(); + mIat.destroy(); + mIat = null; + } + + } + + public String sendMessage() { + + return voiceChat.getText().toString(); + } + + @Override + protected int getLayoutId() { + return R.layout.view_voice_dialog; + } + + @Override + protected int getDialogStyle() { + return R.style.dialog4; + } + + @Override + protected boolean canCancel() { + return false; + } + + @Override + protected void setWindowAttributes(Window window) { + window.setWindowAnimations(com.yunbao.common.R.style.bottomToTopAnim); + WindowManager.LayoutParams params = window.getAttributes(); + params.width = DpUtil.dp2px(350); + params.height = DpUtil.dp2px(200); + params.gravity = Gravity.CENTER; + window.setAttributes(params); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + voiceFluctuations = (ImageView) findViewById(R.id.voice_fluctuations); + iconWithdraw = (ImageView) findViewById(R.id.icon_withdraw); + voiceChat = (TextView) findViewById(R.id.voice_chat); + fingersSlide = (TextView) findViewById(R.id.fingers_slide); + gifView = (GifImageView) findViewById(R.id.gif_view); + startRecognize(); + iconWithdraw.setVisibility(View.GONE); + } + + /** + * 上划取消 + */ + public void withdraw() { + voiceFluctuations.setVisibility(View.GONE); + gifView.setVisibility(View.GONE); + iconWithdraw.setVisibility(View.VISIBLE); + fingersSlide.setText(getString(R.string.release_cancel_send)); + isSend = false; + } + + /** + * 上划取消 + */ + public void notWithdraw() { + voiceFluctuations.setVisibility(View.VISIBLE); + iconWithdraw.setVisibility(View.GONE); + fingersSlide.setText(getString(R.string.fingers_slide)); + gifView.setVisibility(View.VISIBLE); + isSend = true; + } + + /** + * 科大讯飞内置录音机 + */ + RecognizerListener recognizerListener = new RecognizerListener() { + @Override + public void onVolumeChanged(int volume, byte[] bytes) { + if (volume > 20) { + gifView.setVisibility(View.VISIBLE); + voiceFluctuations.setVisibility(View.GONE); + } + } + + @Override + public void onBeginOfSpeech() { + Log.e(TAG, "onBeginOfSpeech 开始讲话"); + voiceFluctuations.setVisibility(View.GONE); + gifView.setVisibility(View.VISIBLE); + } + + @Override + public void onEndOfSpeech() { + Log.e(TAG, "onBeginOfSpeech 结束讲话"); + ImgLoader.displayGif(mContext, R.mipmap.img_p, voiceFluctuations); + if (TextUtils.isEmpty(voiceChat.getText())) { + dismiss(); + TextHintDialog textHintDialog = new TextHintDialog(); + textHintDialog.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "TextHintDialog"); + } + } + + @Override + public void onResult(RecognizerResult recognizerResult, boolean b) { + printResult(recognizerResult); + } + + @Override + public void onError(SpeechError speechError) { + if (speechError.getErrorCode() == ErrorCode.ERROR_NO_NETWORK) { + Toast.makeText( + getContext(), + getContext().getString(com.yunbao.common.R.string.load_failure), + Toast.LENGTH_SHORT) + .show(); + } + + } + + @Override + public void onEvent(int i, int i1, int i2, Bundle bundle) { + + } + }; + + /** + * 结束录音 + */ + private void endOfSpeech() { + } + + /** + * 初始化监听器。 + */ + private InitListener mInitListener = + code -> Log.e(TAG, "onInit " + code); + + /** + * 开始识别 + */ + public void startRecognize() { + if (null == mIat) { + mIat = SpeechRecognizer.createRecognizer(getContext(), mInitListener); + } + if (mIat.isListening()) { + return; + } + setParam(); + int ret = mIat.startListening(recognizerListener); + if (ret != ErrorCode.SUCCESS) { + Log.e(TAG, "startRecognize ret error " + ret); + } + } + + /** + * 参数设置,设置听写参数,详见《科大讯飞MSC API手册(Android)》SpeechConstant类 + * + * @param + * @return + */ + private void setParam() { + // 清空参数 + mIat.setParameter(SpeechConstant.PARAMS, null); + + // 设置听写引擎 + mIat.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); + // 设置返回结果格式 + mIat.setParameter(SpeechConstant.RESULT_TYPE, "json"); + + mIat.setParameter(SpeechConstant.DOMAIN, "iat"); + if ("zh".equals(Locale.getDefault().getLanguage().toLowerCase())) { + mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn"); + mIat.setParameter(SpeechConstant.ACCENT, "mandarin "); + } else { + mIat.setParameter(SpeechConstant.LANGUAGE, "en_us"); + } + // 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理 + mIat.setParameter(SpeechConstant.VAD_BOS, "10000"); + // 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音 + mIat.setParameter(SpeechConstant.VAD_EOS, "30000"); + // 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点 + mIat.setParameter(SpeechConstant.ASR_PTT, "1"); + } + + /** + * 打印数据结果 + * + * @param result + */ + private void printResult(RecognizerResult result) { + String json = result.getResultString(); + String text = parseRecognizeResult(result); + Log.e(TAG, "printResult " + text); + try { + JSONObject obj = new JSONObject(json); + boolean isLast = obj.getBoolean("ls"); + if (isLast) { + endOfSpeech(); + } + builder.append(text); + voiceChat.setText(builder); + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + + /** + * 转译语音返回 + * + * @param results + * @return + */ + public String parseRecognizeResult(RecognizerResult results) { + StringBuilder ret = new StringBuilder(); + try { + JSONTokener jsonTokener = new JSONTokener(results.getResultString()); + JSONObject jsonObject = new JSONObject(jsonTokener); + + JSONArray words = jsonObject.getJSONArray("ws"); + for (int i = 0; i < words.length(); i++) { + // 转写结果词,默认使用第一个结果 + JSONArray items = words.getJSONObject(i).getJSONArray("cw"); + JSONObject obj = items.getJSONObject(0); + ret.append(obj.getString("w")); + // 如果需要多候选结果,解析数组其他字段 + // for(int j = 0; j < items.length(); j++) + // { + // JSONObject obj = items.getJSONObject(j); + // ret.append(obj.getString("w")); + // } + } + } catch (Exception e) { + e.printStackTrace(); + } + return ret.toString(); + } +} diff --git a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java index 6ba536c79..b4e43512d 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java +++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java @@ -20,6 +20,16 @@ public class LiveAudienceEvent extends BaseModel { private int liveTypeVal; private MsgModel msgModel;//全服消息 private AiAutomaticSpeechModel aiAutomaticSpeechModel;//机器人消息 + private boolean voicePress = false; + + public boolean isVoicePress() { + return voicePress; + } + + public LiveAudienceEvent setVoicePress(boolean voicePress) { + this.voicePress = voicePress; + return this; + } public AiAutomaticSpeechModel getAiAutomaticSpeechModel() { return aiAutomaticSpeechModel; @@ -149,7 +159,8 @@ public class LiveAudienceEvent extends BaseModel { AI_AUTOMATIC_SPEECH(26, "机器人助手"), STAR_CHALLENGE_UPGRADE_NOTIFY(27, "星级挑战成功"), MESSAGE_BOTTOM(28, "聊天消息滚动到底部"), - FLOAT_SETTING(29, "悬浮窗设置"); + FLOAT_SETTING(29, "悬浮窗设置"), + VOICE_PRESS(30, "长按展示图片"); private int type; private String name; diff --git a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java index 625a8d5a1..affaa6ea0 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java @@ -12,29 +12,28 @@ import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.ViewFlipper; -import com.opensource.svgaplayer.SVGACallback; import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGAParser; import com.opensource.svgaplayer.SVGAVideoEntity; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; -import com.yunbao.common.bean.MsgModel; import com.yunbao.common.bean.NewPeopleInfo; import com.yunbao.common.event.MessageIMEvent; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.API; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpClient; -import com.yunbao.common.manager.imrongcloud.MessageIMManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.SVGAViewUtils; @@ -48,6 +47,7 @@ import com.yunbao.live.bean.LiveChatBean; import com.yunbao.live.dialog.LiveHDDialogFragment; import com.yunbao.live.dialog.LiveMicUserDialogFragment; import com.yunbao.live.dialog.LivePromotionDialogFragment; +import com.yunbao.live.dialog.VoiceDialog; import com.yunbao.live.event.LiveAudienceEvent; import org.greenrobot.eventbus.EventBus; @@ -79,6 +79,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { private ImageView giftImage, liveNewPeople; private String newPeopleUrl = null; private View mNewPeopleRedDot; + private LinearLayout voiceButton; public LiveAudienceViewHolder(Context context, ViewGroup parentView) { super(context, parentView); @@ -179,6 +180,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { return R.layout.view_live_audience; } + @SuppressLint("ClickableViewAccessibility") @Override public void init() { super.init(); @@ -188,6 +190,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { findViewById(R.id.btn_red_pack).setOnClickListener(this); findViewById(R.id.btn_gift).setOnClickListener(this); findViewById(R.id.btn_zg).setOnClickListener(this); + voiceButton = (LinearLayout) findViewById(R.id.voice_button); giftImage = (ImageView) findViewById(R.id.gift_image); liveNewPeople = (ImageView) findViewById(R.id.live_new_people); svga_new_user_gif = (SVGAImageView) findViewById(R.id.svga_new_user_gif); @@ -262,8 +265,57 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { String language = locale.getLanguage(); ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.live_icon_new_people_cn : R.mipmap.live_icon_newpeople_en, liveNewPeople); + + voiceButton.setOnTouchListener((v, event) -> { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + downY = event.getY(); + //按下 + handler.postDelayed(mLongPressed, 500); + } else if (event.getAction() == MotionEvent.ACTION_MOVE) { + float moveY = event.getY(); + if (downY - moveY > 120) { + voiceDialog.withdraw(); + } + if ((downY - moveY < 100) && (downY - moveY > 30)) { + voiceDialog.notWithdraw(); + } + } else if (event.getAction() == MotionEvent.ACTION_UP) { + //松开 + handler.removeCallbacks(mLongPressed); + Bus.get().post(new LiveAudienceEvent() + .setVoicePress(false) + .setType(LiveAudienceEvent.LiveAudienceType.VOICE_PRESS)); + + if (voiceDialog != null) { + if (voiceDialog.isSend() && !TextUtils.isEmpty(voiceDialog.sendMessage())) { + ((LiveActivity) mContext).sendChatMessage(voiceDialog.sendMessage(), null, null); + } + + voiceDialog.dismiss(); + voiceDialog = null; + } + } + return true; + }); + } + private float downY = 0; + + private VoiceDialog voiceDialog = null; + private Runnable mLongPressed = new Runnable() { + @Override + public void run() { + if (voiceDialog == null) { + voiceDialog = new VoiceDialog(); + } + voiceDialog.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "VoiceDialog"); + Bus.get().post(new LiveAudienceEvent() + .setVoicePress(true) + .setType(LiveAudienceEvent.LiveAudienceType.VOICE_PRESS)); + } + }; + public static Handler handler = new Handler(); public static Runnable runnable; @@ -360,13 +412,13 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { return; } Bundle bundle = new Bundle(); - String url = newPeopleUrl+ (newPeopleUrl.contains("?")?"&":"?") + "g=Appapi&m=Turntable&a=tricky"; + String url = newPeopleUrl + (newPeopleUrl.contains("?") ? "&" : "?") + "g=Appapi&m=Turntable&a=tricky"; url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid; bundle.putString("url", url); bundle.putInt("show_type", 0); - bundle.putInt("height",DpUtil.dp2px(1)); - // bundle.putBoolean("banScrollY",true); + bundle.putInt("height", DpUtil.dp2px(1)); + // bundle.putBoolean("banScrollY",true); LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment(); liveHDDialogFragment.setArguments(bundle); liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); diff --git a/live/src/main/res/drawable/bg_voice_chat.xml b/live/src/main/res/drawable/bg_voice_chat.xml new file mode 100644 index 000000000..ef4188aec --- /dev/null +++ b/live/src/main/res/drawable/bg_voice_chat.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/activity_live_detail.xml b/live/src/main/res/layout/activity_live_detail.xml index b709ef276..9cb9f4e07 100644 --- a/live/src/main/res/layout/activity_live_detail.xml +++ b/live/src/main/res/layout/activity_live_detail.xml @@ -9,6 +9,13 @@ android:layout_height="match_parent" android:overScrollMode="never" /> - + \ No newline at end of file diff --git a/live/src/main/res/layout/view_live_audience.xml b/live/src/main/res/layout/view_live_audience.xml index 6bc6f15f7..00dccb471 100644 --- a/live/src/main/res/layout/view_live_audience.xml +++ b/live/src/main/res/layout/view_live_audience.xml @@ -245,7 +245,7 @@ android:layout_centerVertical="true" android:layout_marginStart="10dp" android:layout_marginTop="5dp" - + android:clickable="false" android:orientation="horizontal"> + android:background="@drawable/bc_sound_recording_right" + android:clickable="true" + android:focusable="true" + android:focusableInTouchMode="true" + android:gravity="center"> diff --git a/live/src/main/res/layout/view_text_hint.xml b/live/src/main/res/layout/view_text_hint.xml new file mode 100644 index 000000000..f95a9a5e1 --- /dev/null +++ b/live/src/main/res/layout/view_text_hint.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/view_voice_dialog.xml b/live/src/main/res/layout/view_voice_dialog.xml new file mode 100644 index 000000000..0d7d75834 --- /dev/null +++ b/live/src/main/res/layout/view_voice_dialog.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-xxxhdpi/icon_voice_press.png b/live/src/main/res/mipmap-xxxhdpi/icon_voice_press.png new file mode 100644 index 0000000000000000000000000000000000000000..769c6b9d08516280ad3de375677138f370303e28 GIT binary patch literal 28843 zcmV)|KzzT6P)PyA07*naRCr$Py$RS{M|mdt*6Hs5*J8>0E@KJHmMz(mjaQ5}VV1ch%q5wagaon- zB)J0#nSqdH!ks8HB$ZpejaSb_~0ud*#0?~7zCOS0rewq-4U zcb~dXoj!H?tM7buPMy=IyMHbHJm6p5wR~0e?Ms!ykUI#T8N{jsr6VYO3 z5fCo~S_={PXPR3?doWbLmkw$EZT?QbmnKqr4m#SG{I3)5MIU>xNWFqjy>qYHupw>^ zwj(2rV+W2ffN|{V2xICm+|a`14=;tDI|eOv6e27^zjqXX2G7b8G$V8?%Uf;0{M|Cl zpypyUG$QOl3$Nf+y$1_tcH{PQUsmrtqA}Fm(Xn)E5UIuj-yuJ!)~jc*IXV`z-D5D< zKNc-4ZI;-Jw$LNtt7rgKPRK9?rCx@PUj#b4u_As^sR!q(3~{7wvpaBv0W`axrK4%R zA;L4CKNd=#0N@1l`$oD?;6sVsN`5n~k@o4o6Um>d{G&+!kkwcaRBI2S-g7vhp2N96 z@}g2l%!ZKdYpTr=2GG<_7L21eU$+1=&z*?w{u9wr$DyxViCN7}?Xkc@CrSyP+VzIu zbA)g0{u2AY3cQkAfqxgNK4QE8)!K#D3A@yaoAy_k;z---J8*;nRNu3p9{RDBvsgTH zGWy+9(bC5xohV%ejnZTzt^uUd-Vne2Sn1#7v~;Yh>(|k4w6GoV+_UQJ#}AAPtiyTS zBMhLy)7KBIp20EE$%y7ofsT)JhUUo61#^RNj{@VU>yKJ5K&u@% z5I?Kd9Pt~Baul@h5eCq}PU@G|9EbhAW$48xC-HVk>RAn-f%(FRkn9W+>a*T{GvK&v zeriQf*F*Rs+?FjB1FdJ#(OcCS54=!!m?QlLJ8*;n)Wn2D#b44o4Y6JZ#EWvna5K6I z3r)j)4%$E?p6yG0FBjDYqMesgNEQ`uq@V37ePJ$!HWxMIIq@E z;N@C~dnT_STKwn{AHiV14toZmcdT8E{@ztkI57a_2Tde_Iu+HIW$`8IJ_BwXHvha? zKO_2F)p85y@eN259<|wIvaY#%QPl# z_i_o(0BEwFKLoobzWxAP-!#d#$!GxPi)>@kzmr_(;rFUFhXbw0)Vlk&hAjI~YI9gI zfJEKb`&Z}k^g~b7=R^%qgxEI2F} zKvIMM?BAViO*g8e|4j zTfcA^ocP$;NKA zj`P3uA;$pp<_nL(f<5b?v7q+$m)e)LN3PhhLOp-Qkqev8oAnn!nPbe%vp=}?gn9i( z*`#Pc_O~{vi|*Y$$|&=#?;*ti8d3Qr$u}{3-%jqa`_0d}tiCZweQNs53k|5s{fV6L zxqVdE959=5=$QnE1Opgc#Wi<+BPu^-(Gx@dz^cBiu!lMR#wAuJw*G(x6gmE~>x@Dj zd;#+nH8CcE?tS-AxSH&sX8`)e3y;D65mo*odv{{eU%J4<07fqFbSnBrL}IDCMDP<^ ze-(9~w)NTjiMrIV89*(HXg?OTHmMZ{w@Gl&GJvFV@7Z&gBkrF)l9xY}5XL}n!<02T z_&liRpKp>s<%0=9JGuQnyMHW)<+>CMGoDo%{pc~Q+O*|htuQ<&89?$N=C*s*LgA#5 zkD8m%^C`*4-r;9`S!M6^)!B@Bv3>@4F5|GEs3+-4?RsC@Z=KCyeRv?jPNmvA@xVFv z9gNSO9dryp-*s^Zr@wL$bbM?BM>^%Z`X#3yD`^`?HQ!YH95qiX$B?<5KSFq~Do927 z7OMRs_OA7WZ_ihXoJ~#j zw|*+?*(Z1OPvWkAx+hIBmOA5z%&189=Y&pk`|AKu(kE0Ci=+L}>aK&Opy;4r0Q!ZC zkH+3T7bEI-Mn2jiDL+<^w{LLi5)Ucye&m%82AJCVE5I)@W3ir}amxyGlr@#o2SS;E zYIU)ovr(P3@ujk9rv3Z8X8`);bC1U>{fnS4Wc@WZpA;#Tr z-ZB8a?YuLA?zv;xfQd*xA)S}%-_Gqlxiq)2EIS)?BI_?%LXh;Ql*q^P)brQbIp0uC zG303GVYT|6r|N(c8CE+?z24Ih=q@KTt)0D=TH|sB8 z1j%{$)ci4f_bFIS61;R4^H39*R}3Jv`PVi|3lod&Q>Y8nfBIBcF1KHbPmZ`7Q(1oj z%$e#hh4^g0hU@u5?EMk9Ik0R82!*438Z&7lOwLJ)$jPtdg zsjS~a0zRIWe9u*XGX}T&$D{#B354U&0QmZiW3atw<9vw@%nJsP#QFEVeCf!czImbU zGVeam?i<%DJ%)DX#rhc|s2q9l)$?2C(17hPMG}KWc*Ta&`s1jNxtTlFCDYFnm^uSU zGW>c6E^j2sMQA>d3-?W-o_{_t14{fE@3V1!pVX%)IijP_M>X8z zKQ8JL*B|nV6v3yK(&)ACnB?076Jr3$)!oOg5rf9d*t zc;-tLPur^nyVSakch|+zD*YzI0Jf}Jfti|iKesD=g1E}6M{3KN0K0yEq_Kt0^KShD z6G-@7+4Wsg(ofTyWzDfMjVld15<~X+iF&|<`~hQU0Lfc@vkln&6IcHO>-iID&#_=k z8bFB0zoloP`lmx-S@J*N6hJS8Rto_v0^)^$S_p0aHs2W(i1$HZFSObRU>`L00(u`1 z?E~}B`!6e+a^ly63t6LfNjt_6*6$OFfC&ImTzY%GMw0)6wp&gTiuXy$o8Nfk>YKoly1A z*Q(9m=Ks{-Kgmz#@9ZCg-;;j|C^2lN(Z_R$@HCX#iWpm%g)G)pZrEBVS+f`k9g)g<4h77F9UdH!9_8fHMC*VMyqffKwvQh+80POVA0ir;H)t5tJdMKRGa^=#sRfsH2_( zunEAu=wlP&&dwpn90RdinE24+l=yTXM)EyLnq>h#DZNXryKij%fUz-v^rhZal?1fJ zWovWTN;9*@!Xb%OeO4E2NadH-ulsA!>0bw}FM?914v5qeV*00-pvkgqw@k{X3?tJ7 z3M7A~Kv=DTFoL8%(<+oQci`QFp1KKI-REZYjmQwDN%W2SpNdROhK^c2qAt33%P1J_ z>pK<(pr2p46bEoc?Rfu4j+MIGaQW8e#WoY%Thtk(0)+Z(Ex+TJFc|>}1 zX)iH}MEz$H-i}301ZSSKk2pVLE)*_0ztTIQ)z_g~Uq>(6TK9Bv{U%k>Hxe!ugpQs2 z*|`A8X_gv`7u=@KzWwFK_RsR{rU%q|LxgRgzXGbar1ID!ZFc3^JRO*AHmQ34NH0ay zy%xZmps>o7^qSc0oEZpeJeA6#^k(LQV+IKR0YlJSQ^>RqyNz5ckTezb2%x@(D7qOv zRUMgmO0SuE+)TMB3gbn&B0IIf^Pi08(I&Ne1^@3mZc`gJ#7$wk8K-d#K#!X0TRXNo z%C<-cMh=Qcutu4R_l@F{(CXa)t=|e@#yOIltxZjKs*YO+AG6IRBDKVv(Z=-#L>>m+c~N1J`31LILWmDGbrUM70gF9`>0xX zN2962jWU4ba*zJLE1`5$=}`H8jO1jgG;_*v830*DUpqBl#}MXIz0=W&e;Bd8J_({b zUip-2ybPd-NSWkKwu6}qRGQm4a`Rg!pc;11v))HMZCimc{owzi&V-@)aauI|g zN1`u+knpD%vHBKN^m%CIN;sZMFp0`Ox{sBKUsCZY(N~oIeEnLzpf0-i&dN0A>ChMh z&|6n7LxeSz0h^li_l5X`xMLG}4s*NxJt*>ii$M&nC`!gdkfXbcgbnw{w{JL)bEM1+c62>1# zK>r}6)dQ=-T*3Qq`*62GY8Ga`0~S7Iu{g2fObX(uu@`#T92(xGVx z)A}4DwHF$nLnr!2bXA-&f^nJxQof0SGe`sQ`H(1AsbK5#t)Mx;HbOYR3K zVFn=~&UR;uT6fnYK{Qv;Xk-SEIR4_jZ>SVepxic?%Z|EK+h6j^rYXHmRq<(kG-kW+ z1@xPTX}Lu5Cw~fIGtq-CB;U~fK8?akYfiva;wF8G_R+}v+y-HiKhqM-)RJ?OowG5P zG`he@x9*ZZM0+sYRsZS=8l6JDCuqXm&3`8LqIum)K5#JY|NmCSUuPRwHkw+DTA$hsU~tLDd9N?c z_?w!<7Z^ceTk&eXwB0D4{&xR(sNSzY;{qqOD(7gkFfp~>5}tE}+=eb9MBSx2~{dAaR6ro`1O~P?F8%q~&isjnaX%3KS7BJ_WOL>q-xR?@wumrW%Aue;%HxF?YwjXW0LUqw?n@sT3cl zQro%&tY09F*IUBKIpU~HHpt9rxZRpcDAH3Pd9aSzQA2 zgHYy>V}?vy(%6kieH>bCtZ{0A-hDxcWNN)M>xcv|J&+u-xcPpt@K1|c5*GWaxJ#l`pDQb!A@#{hPncPhHwuxGp{V(a^Mh#dmG zxi{%j!5iyLp%rGjAAr{1?|z;Bi%M)uptK=Hc87pziLNCM%M{3eIYH2nobjwnp*vsJ zUIt&y`vjcY0>Ro$J7suob40X%)q>1f60d)Z85A(cvu zjFeF_0BDGBRFz-Fi_q@=I)J?I!>7V##Wq4ZZI1B~WHIBtI3^^D{@B z#JH>yV(oireoM1rm0`(!0+gsJ_|{BG=1-XfRfz1`oNLZZJ99mm`VA<(H`|$!gi=B1 zxVH9~LN<=9#umP-F5KiVsuD=5IsbIJ*P(alJsYH^<~+8rftoX%vO9XRPSR@ z`mAI|j^#O82tMQMEEFrc+m;NS29J5!hGDeub}pigXrlt#%hnc^xj*lh|Wq3AQ$(S z)?R6&tAHvIx}<)Q@3_rhH`JF9fA{yHa9SQ>p-{&*@|E+75{z>d=IN&ydpy+VXdmQA z3+J~$dLjckiA%K*$7)isJhO6uQGo|>jn1-_^J_eDZ?Co&IrkU0u*F!%RBHh zCYbFR@oI8khTp_`0$P0pZM`?FpvQ*~MT{U2hsH_p6a<6jO1+>i3ojQAW&rxJl}oW0 zug~W5*;bXDD}fv6ZB~+po!I;pR5U(M;_&Nz3>xO@?ZGFfZd(aw34%*F=@uU=O@)Oy zs((76PwM3e#N$NEnG*!&Bp;tI%)*yWP$YHj61X(CLni-~?060<-BHb>c?WZ3u!NjYzEwYjXAL~GKB$y>cG6B^T%GBMY8;$u1 z8HTnE&*roLu5#C3=zRhlCdv#rJdMsTrc!?!3cpzzB23^aE9@zX`I9r8Hp-S>r1S`Y)!kFA`=Vwejn-S*rB51Db~HXfBMm)AeyL^E?gmy7c|(vA>sQU1Lo zr8Bix$mny3+DFh7(K8V#-}WPF2`tl)udB)X1afQTAwLVPD?ZVMm(@VhTo58>b|3$`r_+Mif72lBy>WrWI#!y$T1WOz?kn7D7rr| z#{h|WlbHaFA#q~#r2#uWl9ahR`@k5kc%LmZ6KFbgq&@?!%QFVOT0jMy;sjsU`CLX8 zTp@8Z^Vvt$<>eQMhB1I`=Uk1RafYQ3O)TW+QOW3C{dSX@y1UQh_N%_J``O;mFrOs- z83V}v$%gTJuH8EVtR~<{IUX5cIr|i3?i|de1v4{+nV7j3WqhJw? zq8o|Lbz=%2h1R5YfJ=FMXi})S#F5Msd@{T&qv9IB2Swjnd)4K4f2(ZtQU;)(UUM8; z2QEzp3J#%^O);3v2l;VLFoBC($X>U=AuPC>=)O$?lV+ zqs=)eyl0OyEyB2npdP*n=$oH8=%o7uau=KwXhe1^sD!54g;NA2z*P4>17J6R4?y{< z2qg(uLGq82=q0o+^Ti#t=uWlf))$H>qMQLdyJ{^C^iLI?pd-*)Sl5yR5$*mO2bR!9 z9HHI)9RL?3uu+_M)Z3CuJ;}+(37D$=IRf@1;v_`FJoY*Bq2xXR5f0(TAr2E|Qr?i^F9Y%1ConkI`_Wdvj5vyi5=~0{3B%B=6;=DkrSfx-%6xF` z1>4odw--7C3mJfZVD$`^%w2~z)Vz@XMfLm@&nwrw-Tet5epg{VzfY~sN%K_Fa$8<> z{*ktnP%-C(IOl6p%mAK0{|vmke|6G%qVat` zA+yPH@%@@o-|mXJ#;e^op`zh_rz73TF=gK~vm>D` z;wkqM4_^n7wp76o`!k!{d!Im+hevIa6Jri^{+vVAqqR`RmD94wp_!Y7BK#V(zS~7? zo&!)o^wO2xla~C2JShc6%{-_syYuOK48UgojotS5gkfxEpHV-?QO}=9S$#BS=FC0x z`8)iaGFywFjIe!@*ANFMXy+7&eJ+K#9D*(&sGJ$V2-?CYwR8Lk1h{O8gh7=uBnicM ze+nDPoTOpDvKx)KbFh%nQ3jiypVeFn5lAmob5KjZJU%%-n~d^;?qN%c=M*-k!5hEzrQ7P|}q|S9%Z1Su>E5WryK%3LHP5}_pKysRgm2kqs zy;_Q()kuC0>iBa?aQR#Xm5p5ck;df1QSBw$E6O}ayidTe{NPm@n*abH07*naRF?Wh zAbueD245~{L-1^rHr&&nja4KGnHJD$Kcp_%_`L!hE&r3=eD>v-)yGU$12Ax~^xh`x z`ROu~7kj#&gu;sCYl+Bt(h8M0QbLPVFd%6a60`6Ubc*mk?Zes`662ujlGJQx&CIl+ z5}KPcjwI)yM(%91@C#Lwq4OtVie&Snkjp&1; zgl=IMiVx!UZuR<&w+Ax-z4^KYXl*sAzf<_64nKZ_PXb9r6|D&RcJ~LN;-ATgpV!$J zsl!rUeW4wn5`kl{ax=hFL!ThJ?Jt=Do=QP#$7lU%h%qH9hpCYYKBs_3f}d<|W+qTr zc>$25{aC{GwI#n(V&=?}&+n@*$jm7^K;o>qG z?dQEk6F@(6{u$_}-v6@sYX9!bza~UJE-u^ZABR@&(}=N1e3sjhaBP91itgd9qUy{g z?ICcV01pXz_b>Q5cj}FR-jyM>3sxyVxiQ5yc zA~7*YR3Jy-yyk#3a7-*#XOY2A>?cPHAPgzO&1glxEn?TW1QDN1viD2F?-KC~7Z1km zUF!AuSA=p5KtBR_>0yDi&K`WKJZd&p_JL;y# z$z>UYW2X}-L#2+RTHF2fsPSBq8u;Sm7F^jTb{Lf~e*zyfJvgyR@a4=2!i2aqmD)-s zLXN32#zuel?O77W%t`a%itO3>=6BIqBZ}US2%DX+CsofM$%4x?p-n}sk{BBQO_@|z-;n@1HTG|Yn`XB9H~VlWP+14mhAE3iw-Cf zLUfRs+wq*KaNhtWHczTAwJLHN2!~&oe;EIiD-|<`r!Upm!&F4VWBV&HAV)QmG%zV- z>uHzM?CAWtI}&e3C;DyYIdTKv*o2Yb)+!D0*$w07fc;*|2e7}j?^2iF;k>4lX8`7@ z?|$G@-?g{|3+0KYv5p3fnW`Tu9eqwH$L3GL;cX=;%~OWyNQHPx4H3dYvPk<*F$uP(0L_ZB+c(d*#(|Zds zxJdd-(Ev#ch_QB`E%*N`aZ}(LhJFsmc{pUUeg|`gU zXeJps(NX)JB4!mentJc;_>SLz+#;NtpLyiP{snpZd>$J{k>u`-5FL$TSO7+-|`3L=^u6o_ASnibab(*d~(QY8Hg zEcYndqb|M6xi#2f09vn}!P9f=>#RlYQ&i8-^ZOeN@kzkw_#||Ce`)SZa-}~*?(AxB zg3y#OoUth}6xr4(^6~ItA_zi9csP;n~ei^)!n5aoXq_ZVL zein|FGVc2fJU0ntFfo%Z@v*2rI`}DQ>>QiwA5_n8fGm^xbaQa1_5H8*C( zK`sM$^8Az0-hW|p41kVAZ}CZQ?@4}cIJ=JnZ*8jCxeq|;w~G&0ma4E8;cY`6y5j^M z;+3})O+D%ycpeHXA$~CxSvpNhsGPtVK|4%KVn~!x2Hq#&BrgdJ#+OsUnTnHFk-}m9 z4jH4NS{6A!@jivLZKS@4NSS*fn*Vq+`zXOn)B2=-MG$r8UUkLo&(c%NM$nDh|3W=~ zR^Vf=>$Xh5f-we7K3k zq?8>=+uFaK^%oInk@h1oBlDf-@l#1t@iAH&)yUwt2b7Y8(EuWRu{l~OyG>gn25tfv zXaXI6KEO3zQdiu4TTTPeU$~)#EAF{Ick^%U9pIUMWT2+&`6-MNhg~rDhX7VN(w}P6 z+%8RUL9or8{C`2}aw(bpyTl|2p1lLj5SJAvL# zVDCoYm9GQ)AM&if%KQb-kU0rKWUmu`z`gv^Ij~3uHGM1{i^NYE4m&^V6dp3_N6=Qk zP#gV=I(p0Ni!%NAfPpqY@1~W;_g?#T_0Ag;D$FobKXt*eQ2Q>cx8Sl;UQ*9LZkyjM zfZACL^fKtVPY>2bWA1`|?MU;gcDzJ}$i0 z_rPXg=N|&Ed}U}ZB&(tFLo<4&pM zmnN7wXS+WErQemS_DfbTgtRQ97)k<(>BiEB-SR`uNe>U%unr7ilFv;o*8GS z<0eAqbl}wA2Nu=z>+Zc5c={KC-nQW#iIV9-;o_BplyE6SaKdmb4VarPwjU2+@&X~B z6Ex%Hlp)){nF&VWZQ<__slTpI6D-k3bO4sA`86ed5zzbFkE&}2SB4KYfTz#B0J~8H3P|Kg940;JZ(KdjB(Z?d;%_V=s4(|Eg`G=7 z3d6!nf!F*$fa+8`PG4*DwBDBY0k7UUWB@tsN3zw)`g78ongd18ji=-09JQ$fH)E1T z^9%U^UhR!;LXsHtOK7X0XSTAQWkM-y7+B9QRriIStaNu_yY-5??9T6G3_x$#5aHi` z?oA^*0PU^4X5{Rl4yno^6#9U6MHN&t-48d#k*OH+gQ7X@BSqny z9d9K$`Mt`00jHoSOF7~>}NaGnV$z1*0lM{_I&Rq;E8wT)B0C2< zktdt7v@P4)9PFN40Ise1B0EF;*q&qthJGYJRMt1d%U@H)FN2T!-;Q2-i&}Hjo&f{c za^9(kx@*hEkbf_-_ic{`lY4w=l-woJicdnT_nBeoEIoM%>9~nNB$I@U5+Wt-D1(ra zaR~8qhQ#N|hVqya+(a?n{?kpwbBv#-{yp&WR|ThFfr*vdKTlO9-@j}bJoA$G54=x6 z+7?F>5Kv=?}c5dk?*@u^y!?wb+m4?AVQ6u~4L+M6IF`3HOwnysBnM_)3Hq#fa8J49&-uuG#BN8eNaUdh?5k#sI!~%A zZhvgR0Jfg94sm>nf6Rb-ep=C&3^YcMe_=j#x{8^(j{vy7wB$GE=p*)OGE|vIpG#+k z$Vqq7MygQDX%j3KPKnKDN|+>{*A`!E7m72b?H>C#z`lpmW*&Rn!tAWymul?Mlq^%p z7-32JFjwcD{wcU3qxCQq+dtA@M;jj(_a#XB7sdI_sJw!21ZE%+ycBTgw|A(k@7R) zW4?;ibLi-Imok7{gDMF=BM`lr*Ow>c(*R<;q^`RAwv+*^T93FtD3lRDLOs8Im@_j2 zOveUoeGUgz^~>%_i}dMe_x>VL7oG4C3FS#eKKz0ZdvAcG#!KT`n7KMk^Yje};<&c6 zVBgaDsT!SquYlM56|ng7M(DeAkUh5pPyX9MGpnA{PMlG4__?3N(Xxc~^Lz_#dSr9+ z^Q9&R+h2axh31R~I?;O(#lwq2g3@{IoT2snr8{5Tph}`$tmf2J8^58nzM+Mu?=c}j z;p4ISX+@vqKI0^Q%UjHU%ZNW|(|sEv{lUS4QV+gm>h_?$syW{VF1bm`YeoRnVMt@z z>HL&2*glS(8IX)b=d$ZczDtq(wO<;){cqQCU<>ew^#f39mozOBdC4R{*%!`So%zFHpH%v0I8x-mV^Tws3>hM(ZHw$m zXMStzGOxCyF?g7Uv#&NRY3J9#xf_9KaZ|frJWhWv@ZC$(HWGnb!sXukqP3B>JQbQU zyzFnO&ObeGr@z3^Glnc^2-#T>u01dV{s}YsQ%;>pZkMQ|kN;Sf;Wxt3Sz0WbUK;+u z(p!|?zVbwL@j7{WTF;;UU0TmS!a^kOYQL*8>`eE!p!Mr=4m@(EPEJ71PV`j0IsFMh z5(ALRbH)B10+MXkBE&uKp(;BxdfWTX&sPjmlSInPr|aiZ*D290(TKQ-MOTwMi;@B) z$M@iKQYH-GZp_60(UJZ^lHUO5lkN>jeKUOBvijcQyOrL$av5T*k#%bp<4-2DxB0Lu zy+%i=;RuDv6af>pd!L2UCpx+MPB&&}@**1ti9Av)SENHI)`y^+Kr-4dNLrEV`ME>Q zj5BEluxU-+yeisb>Y=AZSEl{&wuurU%MEfHMYmp{?KJH$kh^^9SH? zXcH;bH?(imc|d8W3a}{Ck5}`J$>A4VLg`s$OV6U+`$xp~=7_W%CrT&Zo*_fXy@0d} zCF~+8ErkP3dtcgcwnSnJ+qwAst0$}hSO$>5Zvmxn3hK4fmh=(VFZK6i4Lbb`?D)d@ z6V5V3Dh`u^Mn}B^QGCGvUZ!+y*O;Y$D6vcJTJ1-besa|+wAJ!_UM-dWrni*oFv{$# zuT(M+luymZY4=_Wr9b6-%kB6~idc*&3KMcaf@H_Da3T$Haiq)en%VIb6i!g0AAy-E z6K4R%1n``H@_oR420k;%j?3>8;2MTV&@6`{87uT&z!dImelnK%uBG0OD1I`(>MG&B znlw`s=BsN0#L*U|zjxmGK=*Xl1ekJef6YBgy0znLq58j?{Ou4DktjKd!=;AwZvs@| zxI~ip?D(Q=z+@UWe@LOw>IX;Jwd#F0oj>Sfi9Pu{U9hj7-_GJNLE&6{CW7}qgj6$d z7)Sb#O!JejUSkoSqWc6A27uo}6n%4G)7wu`L62!OqMa|DOj8bc9X+EoeFrdumD>6C zu6~~KR2^r;9+H%=;_>H$c6vVs==Th>?`Q*-wP$fJhd4fsfaI^3J{fYQ14#}gF13m> z0dvVjf*QqY{xid&bP99J6Fh zAY&+u3DSRZ#$wN0^zV@QC1xf0A!uYGslU))L0kX95QTgfbo%u5KpdvcMsf0$O{dgu zrJp+IDyVo6Ku#tj;l6R?^P71_b@UZ2tkwM}B6XGg@TVkcsKlXhWC0;Fb(bXjNGZTv z!cnR3yH6mOndX__cb~wd8NfZM24LawnJG@hf@fx?j4Y?s5GI_^UE07W{i&LtWeo~i znWM3hbI*;-a}qKDzl~1xv7reNQqNyTg(bgNN$jaQRbRcT^!Lub252qJ`r3;;>N*xe zfEXpor)>OA|2LuIiyaeyCx%#OFIV9?B4nlkwRL@rftd%nJb5baiHT8WFZ;9ve!<0> z3Ht!BIhgB4vGrAGW-%kvk^9;7600xiRAGw zL(Yo7bK-BBCUt9{(odgz9eTalEWR(s`5O%Rjg$Dz{&sqQ0IgRiTWuwF&Z)$_y9thY zyz<#^DL3#j4UX`+`2|&$5`j%wc8X*w+$S(;29Rg~bYlg-Nw#E9+}es<&%LMCN*o%{V@;?i{cZyEpjqh#AO7Ule_`#yf(Wqzt>D)i}Lv=xa6EP14uLg z0;{CPX9URzG_j{y7*o;^a!i$1Y|?$@*Nu51IXjTI%7Z2mgh}~z$b5+~6OAjsSPuk?{cM8x?*>6U>6%8-(Y-D72kVz1}ow3#Z0+d=RCaGAH zz#)Dn#S)t5si7rd!DI+eF$>)ZN18L{;!Bmy`t#@ngL~o(;DR9llJw6QWr5G6=sp2y zuN>kH8CQq``OJ=7Xp%9K!EwEej(Vqy+*EJpjGzK7(Sn|FI{qj~Q4}k^`P{cw0JB=t zQFHpM%{FM=?tc+F?&QjVIUz|lzind~g%q<-q=DylTk6T@PC9Y^OiZ~e_07M)xHdGf z?;+x|NV`sh0dOK+cH|$a-Z7(Q&_x-63;s_C5uB7G?Jd@cFsv zLeIuIU#g8HFn2K%zr8UBAkPt+6yXzWQ~G=7zICAfH|Xe-2)9mJZyg5E>VFZ?9q}R1 z3}J+O;&ZBHhH-gYcOVUh@7Q^XJ#9#(VNNxrNbf630dVqv08aSnLE~M24($AIgTF1a zIRAkJ*fs@*K^u00H?ffFy4+&1J9VtNd>~TFmuyD^wVS;JuEyL9xPcuIjf@k z1bkXWVZMl?MRYNPx6kYBzKSQR^poek8A?YL`;|8zx3}L1L6n*R_IGpWj*3ci)QKdg z@pX%wlwr_|MSP{J$y~&9pAje{^6YyeVIWb5(M^<6MwAHdzr z1i0{aptWeQPy^q+uO|e`)>*WFPAIS7J^?Ppy(+wgy55&DHiw8N-v3{$|0g-d_PY#a{=&cZDIDolh**88V6>dJNw`%kETpLn~iWzdN#g#i)@~v`DsCs6HeZN8T{m^+n4p{ zc7J07hYn<%fLqqAhc3DgFmy1|ZjuDg!Har-41nB?9pca3rFJJR{DL zc6I<(gyLu)Leh}|W99z>77SiEPd<;m132*LupZ&;{|}g5UgNN8blJZJc;M~BG=N3t z0O$SB;Xr#I1s?h#_85z&I4kEsl=jG;L;BxbUPsY=3cj2VGG^|~QW&^dsIeIf)W55- zV}mY|zi^ykzA`|QFyQ8MuLZE6tZm`%Qflug1wEqx6ZK85_G;%sQ0aiVv`7SWiInD9 zZ#;cBfxEzt_c^vGW3hkp-1OJ{DX`?~;m&OS8Q|4h2LCo~SNtV#)PybtedP||(f6j? zrGO<@0%!lp5Vn`T4LtUKa*9-2VuY8#Pl(>P{_J~7oOHjrzkz94&e`zj0BtKJ1Z87C zh*^+Cpqhv}O`^9TCp6pIZ+rmPKqXkg^1F`hNkA{Wn9Xw*40HyeUjek@utz04GzTtFmbo+iw43 z!2Hkd*-1YJobfBeL7w|xz?NSp`%mm}Z+4%QN==BJr}=U}f_PpMF%xDZo|(Xq>^dWL z7iRF$in}#vK8-M68K6lj@Dr=ALX;K*m3831H(kkBb$+RRtN&}zxO$ifL>K{=B029b zMO0~UmQ=!<^}#VTAu)b@BI$2^KXWdT`HKe$CB(B-BkD~IVSEom!ft~HX>&f z%&%aXeS~je2ESQpYo)@#`Je%qMI122K$}-z4#cD!xYF{57X?-9HkRgwAU+i%8HG{TP6N*U+VEHNWcLGa0Q9TFb*}p7@m~#Y zo(6mH{~SvH))HXt%|Jw+BERon0dw2ka^VDW=KJ7#LzAKS`8jQw%`a*d1gNf!+T+WB^CM1voR! z52$#Y!Ofre5U`stqT{{~Sn=D#?#2Q5zz+@n?X8WlXF#2Mb_h>uZ!UsBAWjIB*zrEe zPnn9uj46{c^CfNUxF*_x&!D6KHh8a0!>N1vJ_+e*z278V>c$pAi25QO)g|tn~G&=R%fXF5<%P zV_?i6XL67;$<0qSF~UeBO`sM17CP}agZ7Pk{HLw2{{XQ3H-^o15BTm60{fpzzbj#woLPEP ztcB1h75a9cb0%GhPlvZJOX8X}mx5~HQcw@=Od++`OT`kcB$tA2S-S#y?wmsMALk7| z75Gl+;u1LZETZ@y5z}-o7KW0-dAR~0igaAU_+rZxE2X%%VE2b4tWZ_-v|k5~C-o@Z zXMu;m577HlhNpqWmjY+~IiQGLKFU5Df5W3c1MJy2)U?$?;QTKFGbas4-gzVN)PG6; zUBqnp{Q#zmy^lfIYsWWW%?7?8!I9@R--W>mXH(K`^w2fSN3>3aUqGvxx? z_S5EC@W<9JLwnA=@(}i!WMy9wL_Vg}HWgWOpM_ES`Gq=E3+JcA?kVsZnku`nz+5(4;WKTu z-+)S0fBJ9pci%h=^4LWuqP`RpRZH%!v&Q#$?Mg0|0{aROx$gvaA);ZAba zG?&00K1bw0-vDJWL_78SD?Ia`{PV!c|Cfu2JN^WC_7iTU;>_v5nZH}#Ctz&;&A$T7 zJ>!mh+6REse%76T+n)i?e9}`XNiOo>eh{BWUSb4NI5AfPV9%FqFl{5wF9?Mp;iv1= zcVhwmV~+f#ioOawVk}LAeRbw(F!MO*qWBGkfXo-E&wS-N#L`&eRW-eCE!hGC`CsnEW2*F8+@x;vS{GF2q&OY;B`q}jv;F;eWEYfkZ0a$n* zaP%92qh1GeP9FB{?gY&LjGDju8^B)k#sHr`0?zm_a5B?^=XL@Q{wUBjs=pPM^1<_-y@Lzf^tR zan{!ojMrOMt%o*ZMfgm!u!n*p+Whne7GiLg}doVsq~HwFw~^LbYQ`sfV4`9kytph^)4a!YF~{v3c4k~MLO z>r~%)5_cS=rLk$>eFCZEpona}_YQIs6M-^~EIuvVC&0B7E8WbxmR<{-`Fq1!e0zxT zeqh(<2A6Zhdq|NId$TVKkfi%yVKU>ijsi}8FL3gY0THVgGfuxJJ_4A+pEBaJ4AbY8 zm&`G{j)dTuM#e+5&ivG#_mp~5!q0~HRTL%wJcmVicaHeyOLiY;EF%3fZV=%mb=BRs z4H&?aYt}*aPZ8h$oDa+(7sE6*KV`dI?=ogU_agwVclXAVLh3aM5>YE>nTd!~CB3&K zE!I(6EgaT-VNR>rmB5Nm0JF>TGRAoEU-%;M(!T(E?gq5EkBfdd12olr7X!zv2abQc z97Q;=6?p6yfPIe-29jX4{uCOGEo{rpFTpXF%LXKjL0pq?emNMpgEH+yg+@z#9kcPr zbDKL~y!^qHx8%)Fg&peZJ2nj%z|-fQjh=pOw!ry7^cI*xyQbi2rgr>h#Q1PVzh0y# zh{h2)Cz&`Q+Cgaynlg+s1m(=dgY+3Ok@+00CcTtn`F{hJkeh;Xl3_PsN_ppY49o*- zw;Mk~=R}}$3b6FD;?UvCcL7g)80fw@yq7T3NSLNX%^Qgk__Pm4<0(n#@@Z;L#K5Ti z0wd@1C;OG=BTyeg8^4bk{nebqZ<_Xgp4C^Y%h8=D)wQ=jmihqBI~85MHhT%o3?9r? zBuGa1&KG(#@%_ZpFGzc-)-sAug6e<9l}-c+C;>ScU?~FR(ofl%s4pRD%a{XIOQ~Z} zB8uGn)=uSVsssi}Ye57Y`*z^ep9f}68Q~Cwt_OAi+dct2_s^+=Q5v3l>lrhXh}!O% z

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 literal 0 HcmV?d00001 diff --git a/live/src/main/res/values/strings.xml b/live/src/main/res/values/strings.xml index c36459deb..7ef32f6ac 100644 --- a/live/src/main/res/values/strings.xml +++ b/live/src/main/res/values/strings.xml @@ -21,4 +21,7 @@ 開通貴族 享受專屬特權! 前往貴族中心 + 手指上滑,取消發送 + 松開取消發送 + 已超过10秒未识别到录音 diff --git a/main/src/main/java/com/yunbao/main/activity/MainActivity.java b/main/src/main/java/com/yunbao/main/activity/MainActivity.java index 8f634d496..ec9db6525 100644 --- a/main/src/main/java/com/yunbao/main/activity/MainActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/MainActivity.java @@ -1264,12 +1264,11 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene @Subscribe(threadMode = ThreadMode.MAIN) public void onLiveFloatEvent(LiveFloatEvent event) { - - new Handler().post(() -> LiveFloatView.getInstance() - .cacheLiveData(event.getmLiveBean(), event.getmLiveType(), event.getmLiveSDK(), event.getmLiveTypeVal()) - .builderFloat(mContext, event.getmLiveBean().getPull(), LiveAudienceActivity.class)); - - + if (event != null && event.getmLiveBean() != null && !TextUtils.isEmpty(event.getmLiveBean().getPull())){ + new Handler().post(() -> LiveFloatView.getInstance() + .cacheLiveData(event.getmLiveBean(), event.getmLiveType(), event.getmLiveSDK(), event.getmLiveTypeVal()) + .builderFloat(mContext, event.getmLiveBean().getPull(), LiveAudienceActivity.class)); + } } } diff --git a/main/src/main/java/com/yunbao/main/activity/TestActivity.java b/main/src/main/java/com/yunbao/main/activity/TestActivity.java index 911447166..d4094b529 100644 --- a/main/src/main/java/com/yunbao/main/activity/TestActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/TestActivity.java @@ -6,30 +6,18 @@ import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; -import com.yunbao.common.views.weight.IRecognizedResult; -import com.yunbao.common.views.weight.Recognizer; import com.yunbao.main.R; public class TestActivity extends AppCompatActivity { private TextView contextLayout; - private Recognizer recognizer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); contextLayout = findViewById(R.id.context_layout); - recognizer = findViewById(R.id.recognizer); SpannableStringBuilder builder = new SpannableStringBuilder(); - recognizer.setCallBack(new IRecognizedResult() { - @Override - public void onResult(String data) { - builder.append(data); - contextLayout.setText(builder); - } - - }); } } \ No newline at end of file diff --git a/main/src/main/res/layout/activity_test.xml b/main/src/main/res/layout/activity_test.xml index 558c7c8cc..df80af1e9 100644 --- a/main/src/main/res/layout/activity_test.xml +++ b/main/src/main/res/layout/activity_test.xml @@ -12,11 +12,5 @@ android:layout_height="0dp" android:layout_weight="1" /> - - \ No newline at end of file