From 658cf6b8d61b3f52d8fcfab4fbe33ad92e2800b7 Mon Sep 17 00:00:00 2001 From: huangjian Date: Wed, 11 May 2022 16:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A3=B0=E9=9F=B3=E7=A7=80=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/ui/user/UserInfoActivity.java | 72 +++++++++++++++++++ .../ui/user/view/UserInfoInfoFragment.kt | 54 +------------- .../res/drawable/bg_userinfo_skill_audio.xml | 16 ++--- .../main/res/layout/activity_user_info.xml | 30 ++++++++ .../res/layout/fragment_userinfo_userinfo.xml | 34 +-------- 5 files changed, 115 insertions(+), 91 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java b/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java index 736909672..4216b6540 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java @@ -25,6 +25,8 @@ import com.netease.nimlib.sdk.RequestCallbackWrapper; import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; import com.yizhuan.erban.R; import com.yizhuan.erban.UIHelper; +import com.yizhuan.erban.audio.helper.AudioPlayerHelper; +import com.yizhuan.erban.audio.helper.OnPlayListener; import com.yizhuan.erban.avroom.ButtonItemFactory; import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.base.BaseBindingActivity; @@ -68,6 +70,7 @@ import com.yizhuan.xchat_android_core.user.UserInfoUiMgr; import com.yizhuan.xchat_android_core.user.UserModel; import com.yizhuan.xchat_android_core.user.bean.UserDetailInfo; import com.yizhuan.xchat_android_core.user.bean.UserInfo; +import com.yizhuan.xchat_android_core.user.bean.UserInfoSkillEntity; import com.yizhuan.xchat_android_core.user.bean.UserPhoto; import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent; import com.yizhuan.xchat_android_core.utils.LogUtils; @@ -75,6 +78,7 @@ import com.yizhuan.xchat_android_core.utils.StarUtils; import com.yizhuan.xchat_android_core.utils.net.BeanObserver; import com.yizhuan.xchat_android_library.annatation.ActLayoutRes; import com.yizhuan.xchat_android_library.utils.ListUtils; +import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.SizeUtils; import org.greenrobot.eventbus.EventBus; @@ -112,6 +116,8 @@ public class UserInfoActivity extends BaseBindingActivity toggleAudio(skillEntity.getPropVals())); + } else { + mBinding.llAudio.setVisibility(View.GONE); + } + } + + private void toggleAudio(List list) { + if (ListUtils.isListEmpty(list)) return; + String url = ""; + for (String s : list) { + if (s.contains("http")) { + url = s; + } + } + if (TextUtils.isEmpty(url)) return; + if (!audioPlaying) { + playAudio(url); + } else { + stopAudio(); + } + } + + private void playAudio(String url) { + if (audioPlaying) return; + audioPlaying = true; + mBinding.livUser.start(); + mBinding.ivAudioControl.setImageResource(R.drawable.ic_skill_play); + AudioPlayerHelper.get().playInThread(url, new OnPlayListener() { + + @Override + public void onError(String error) { + SingleToastUtil.showToast("播放出错,请重试"); + stopAudio(); + } + + @Override + public void onPrepared() { + + } + + @Override + public void onPlaying(long currDuration) { + + } + + @Override + public void onCompletion() { + stopAudio(); + } + + }); + } + + private void stopAudio() { + if (!audioPlaying) return; + audioPlaying = false; + mBinding.livUser.stop(); + mBinding.ivAudioControl.setImageResource(R.drawable.ic_skill_pause); + AudioPlayerHelper.get().endPlay(); + } + @Override protected boolean needSteepStateBar() { return true; diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/view/UserInfoInfoFragment.kt b/app/src/main/java/com/yizhuan/erban/ui/user/view/UserInfoInfoFragment.kt index c8f7185fd..dc7ab399b 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/user/view/UserInfoInfoFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/user/view/UserInfoInfoFragment.kt @@ -26,6 +26,7 @@ import com.yizhuan.erban.skill.activity.SkillHomeActivity import com.yizhuan.erban.skill.activity.SkillHomeActivity.Companion.PAGE_TYPE_CUSTOM import com.yizhuan.erban.skill.activity.SkillHomeActivity.Companion.PAGE_TYPE_SELF import com.yizhuan.erban.ui.user.UserGiftActivity +import com.yizhuan.erban.ui.user.UserInfoActivity import com.yizhuan.erban.ui.user.adapter.GiftAdapter import com.yizhuan.erban.ui.user.adapter.SkillCardAdapter import com.yizhuan.erban.ui.user.decorationsend.UserInfoSkillDecoration @@ -159,16 +160,8 @@ class UserInfoInfoFragment : BaseViewBindingFragment = list.toMutableList() if (audio != null) { - binding.llAudio.visibility = View.VISIBLE - binding.livUser.stop() - binding.llAudio.setOnClickListener { toggleAudio(audio.propVals) } + (activity as? UserInfoActivity)?.initVoiceShow(audio) newList.remove(audio) - if (newList.isEmpty()) {//只有声音秀 - binding.recyclerSkill.visibility = View.GONE - return - } - } else { - binding.llAudio.visibility = View.GONE } if (skillAdapter == null) { skillAdapter = SkillCardAdapter(mContext) @@ -245,48 +238,5 @@ class UserInfoInfoFragment : BaseViewBindingFragment) { - val url = list.find { it.contains("http") } ?: return - if (!audioPlaying) { - playAudio(url) - } else { - stopAudio() - } - } - override fun onDestroyView() { - stopAudio() - super.onDestroyView() - } - - private fun playAudio(url: String) { - if (audioPlaying) return - audioPlaying = true - binding.livUser.start() - binding.ivAudioControl.setImageResource(R.drawable.ic_skill_play) - AudioPlayerHelper.get().playInThread(url, object : OnPlayListener { - override fun onError(error: String?) { - "播放出错,请重试".toast() - stopAudio() - } - - override fun onPrepared() {} - - override fun onPlaying(currDuration: Long) {} - - override fun onCompletion() { - stopAudio() - } - }) - } - - private fun stopAudio() { - if (!audioPlaying) return - audioPlaying = false - if (!isDestroyView) { - binding.livUser.stop() - binding.ivAudioControl.setImageResource(R.drawable.ic_skill_pause) - } - AudioPlayerHelper.get().endPlay() - } } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_userinfo_skill_audio.xml b/app/src/main/res/drawable/bg_userinfo_skill_audio.xml index 01f5f9bec..ebcf73b90 100644 --- a/app/src/main/res/drawable/bg_userinfo_skill_audio.xml +++ b/app/src/main/res/drawable/bg_userinfo_skill_audio.xml @@ -2,15 +2,15 @@ - + android:endColor="#ffe7fbfd" + android:startColor="#fff8f8f4" + android:type="linear" + android:useLevel="true" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_user_info.xml b/app/src/main/res/layout/activity_user_info.xml index 8ced3bec1..3d953e1f0 100644 --- a/app/src/main/res/layout/activity_user_info.xml +++ b/app/src/main/res/layout/activity_user_info.xml @@ -66,6 +66,36 @@ android:textColor="@color/white" android:textSize="10dp" /> + + + + + + + - - - - - - - - + android:layout_marginTop="@dimen/dp_8" + android:layout_marginBottom="8dp"/> +