[Modify]声音签名功能开发

This commit is contained in:
wushaocheng
2023-01-05 20:45:41 +08:00
parent 82e121657c
commit 6989a1876d
10 changed files with 118 additions and 6 deletions

View File

@@ -265,6 +265,9 @@ dependencies {
implementation 'com.github.yalantis:ucrop:2.2.7' implementation 'com.github.yalantis:ucrop:2.2.7'
implementation 'com.github.SheTieJun.Mp3Recorder:recorder-mix:1.7.1'
implementation 'com.github.SheTieJun.Mp3Recorder:recorder-core:1.7.1'
} }
channel { channel {

View File

@@ -12,6 +12,7 @@ import androidx.fragment.app.Fragment;
import com.yizhuan.erban.audio.AudioRecordActivity; import com.yizhuan.erban.audio.AudioRecordActivity;
import com.yizhuan.erban.audio.MyVoiceActivity; import com.yizhuan.erban.audio.MyVoiceActivity;
import com.yizhuan.erban.audio.RecordingVoiceActivity; import com.yizhuan.erban.audio.RecordingVoiceActivity;
import com.yizhuan.erban.audio.SoundSignatureActivity;
import com.yizhuan.erban.ui.login.AddUserInfoActivity; import com.yizhuan.erban.ui.login.AddUserInfoActivity;
import com.yizhuan.erban.ui.login.ModifyInfoActivity; import com.yizhuan.erban.ui.login.ModifyInfoActivity;
import com.yizhuan.erban.ui.setting.SettingActivity; import com.yizhuan.erban.ui.setting.SettingActivity;
@@ -135,6 +136,12 @@ public class UIHelper {
mActivity.startActivityForResult(intent, requestCode); mActivity.startActivityForResult(intent, requestCode);
} }
public static void showSoundAct(Activity mActivity, int requestCode, String label) {
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_MY_SOUND, ResUtil.getString(R.string.yizhuan_erban_uihelper_03) + label);
Intent intent = new Intent(mActivity, SoundSignatureActivity.class);
mActivity.startActivityForResult(intent, requestCode);
}
public static void showModifyInfoAct(Activity mActivity, int requestCode, String title) { public static void showModifyInfoAct(Activity mActivity, int requestCode, String title) {
Intent intent = new Intent(mActivity, ModifyInfoActivity.class); Intent intent = new Intent(mActivity, ModifyInfoActivity.class);
intent.putExtra("title", title); intent.putExtra("title", title);

View File

@@ -1,11 +1,27 @@
package com.yizhuan.erban.audio package com.yizhuan.erban.audio
import com.netease.nim.uikit.StatusBarUtil
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseViewBindingActivity import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.databinding.ActivitySoundSignatureBinding import com.yizhuan.erban.databinding.ActivitySoundSignatureBinding
/**
* @author wushaocheng
* 声音签名
*/
class SoundSignatureActivity : BaseViewBindingActivity<ActivitySoundSignatureBinding>() { class SoundSignatureActivity : BaseViewBindingActivity<ActivitySoundSignatureBinding>() {
override fun init() { override fun init() {
initWhiteTitleBar(getString(R.string.label_user_sound_signature))
} }
override fun needSteepStateBar(): Boolean {
return true
}
override fun setStatusBar() {
StatusBarUtil.transparencyBar(this)
StatusBarUtil.StatusBarLightMode(this)
}
} }

View File

@@ -139,6 +139,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
binding.ivDescMore.setOnClickListener(this) binding.ivDescMore.setOnClickListener(this)
binding.layoutPhotos.setOnClickListener(this) binding.layoutPhotos.setOnClickListener(this)
binding.rlAudioRecord.setOnClickListener(this) binding.rlAudioRecord.setOnClickListener(this)
binding.llAudioRecord.setOnClickListener(this)
val mLayoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true) val mLayoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true)
binding.rvPhotos.layoutManager = mLayoutManager binding.rvPhotos.layoutManager = mLayoutManager
} }
@@ -248,9 +249,18 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
}, R.string.ask_again, }, R.string.ask_again,
Manifest.permission.RECORD_AUDIO Manifest.permission.RECORD_AUDIO
) )
R.id.ll_audio_record ->{ R.id.ll_audio_record ->checkPermission(
{
} // 点击跳转到声音签名页面
UIHelper.showSoundAct(
this@UserInfoModifyActivity,
Method.AUDIO,
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_07)
)
isAvatar = false
}, R.string.ask_again,
Manifest.permission.RECORD_AUDIO
)
R.id.layout_photos -> UserModifyPhotosActivity.startForResult( R.id.layout_photos -> UserModifyPhotosActivity.startForResult(
this@UserInfoModifyActivity, this@UserInfoModifyActivity,
userId, userId,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:centerColor="#DBE3FC"
android:endColor="#F2F1FF"
android:startColor="#FFFFFF"
android:type="linear"
android:useLevel="true" />
</shape>

View File

@@ -7,6 +7,13 @@
android:background="@color/white" android:background="@color/white"
tools:context=".audio.SoundSignatureActivity"> tools:context=".audio.SoundSignatureActivity">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/bg_gradient_dbe3fc_f2f1ff"
app:layout_constraintDimensionRatio="1.74:1"
app:layout_constraintTop_toTopOf="parent"/>
<com.yizhuan.erban.base.TitleBar <com.yizhuan.erban.base.TitleBar
android:id="@+id/title_bar" android:id="@+id/title_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -32,7 +39,7 @@
app:layout_constraintEnd_toEndOf="@+id/ivSoundTranscribe" app:layout_constraintEnd_toEndOf="@+id/ivSoundTranscribe"
app:layout_constraintStart_toStartOf="@+id/ivSoundTranscribe" app:layout_constraintStart_toStartOf="@+id/ivSoundTranscribe"
app:layout_constraintTop_toTopOf="@+id/ivSoundTranscribe" app:layout_constraintTop_toTopOf="@+id/ivSoundTranscribe"
tools:src="@drawable/ic_sound_record" /> android:src="@drawable/ic_sound_record" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvSoundTime" android:id="@+id/tvSoundTime"
@@ -58,6 +65,37 @@
app:layout_constraintStart_toStartOf="@+id/ivSoundTranscribe" app:layout_constraintStart_toStartOf="@+id/ivSoundTranscribe"
app:layout_constraintTop_toBottomOf="@+id/tvSoundTime" /> app:layout_constraintTop_toBottomOf="@+id/tvSoundTime" />
<FrameLayout
android:id="@+id/frRestartBg"
android:background="@drawable/bg_ffffff_r360"
android:layout_width="42dp"
android:layout_height="42dp"
android:elevation="1dp"
android:layout_marginTop="@dimen/dp_16"
app:layout_constraintTop_toTopOf="@+id/frPlayBg"
app:layout_constraintEnd_toStartOf="@+id/frPlayBg"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivRestartRecord"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:layout_gravity="center"
android:src="@drawable/ic_restart_record" />
</FrameLayout>
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/restart_record"
android:textSize="@dimen/sp_12"
android:textColor="@color/color_6D6B89"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/frRestartBg"
app:layout_constraintStart_toStartOf="@+id/frRestartBg"
app:layout_constraintEnd_toEndOf="@+id/frRestartBg"/>
<FrameLayout <FrameLayout
android:id="@+id/frPlayBg" android:id="@+id/frPlayBg"
android:background="@drawable/bg_ffffff_r360" android:background="@drawable/bg_ffffff_r360"
@@ -92,4 +130,26 @@
app:layout_constraintStart_toStartOf="@+id/frPlayBg" app:layout_constraintStart_toStartOf="@+id/frPlayBg"
app:layout_constraintEnd_toEndOf="@+id/frPlayBg"/> app:layout_constraintEnd_toEndOf="@+id/frPlayBg"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivSaveRecord"
android:src="@drawable/ic_save_record"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginTop="@dimen/dp_16"
app:layout_constraintTop_toTopOf="@+id/frPlayBg"
app:layout_constraintStart_toEndOf="@+id/frPlayBg"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/save_record"
android:textSize="@dimen/sp_12"
android:textColor="@color/color_6D6B89"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/frRestartBg"
app:layout_constraintStart_toStartOf="@+id/ivSaveRecord"
app:layout_constraintEnd_toEndOf="@+id/ivSaveRecord"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -5032,5 +5032,8 @@
<string name="sound_time">%ds/60s</string> <string name="sound_time">%ds/60s</string>
<string name="good_voice_brings_more_attention">好的聲音能帶來更多關注哦~</string> <string name="good_voice_brings_more_attention">好的聲音能帶來更多關注哦~</string>
<string name="hit_start_record">點擊開始錄制</string> <string name="hit_start_record">點擊開始錄制</string>
<string name="restart_record">重新錄制</string>
<string name="save_record">保存聲音</string>
<string name="sound_signature">聲音簽名</string>
</resources> </resources>

View File

@@ -137,7 +137,7 @@ public class FileModel extends BaseModel implements IFileModel {
interface Api { interface Api {
/** /**
* 获取钱包 * 上传文件
* *
* @return * @return
*/ */