Skip to content

Commit d604698

Browse files
perf(*): 调整音频取样最大值计算规则
1 parent 0c8fce1 commit d604698

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

app/src/main/java/com/pengxh/kt/lib/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class MainActivity : KotlinBaseActivity<ActivityMainBinding>(),
9393
initHub(createAudioFile())
9494
startRecord(object : AudioRecordHub.OnAudioStatusUpdateListener {
9595
override fun onUpdate(db: Double, time: Long) {
96-
imageView.drawable.level = (3000 + 6000 * db / 100).toInt()
96+
imageView.drawable.level = (1000 + 60 * db).toInt()
9797
textView.text = time.millsToTime()
9898
}
9999

lite/src/main/java/com/pengxh/kt/lite/widget/audio/AudioRecordHub.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,13 @@ class AudioRecordHub private constructor(private val context: Context) {
104104
* 更新麦克状态
105105
*/
106106
private fun updateMicStatus() {
107-
val ratio = mediaRecorder?.maxAmplitude
108-
val db = if (ratio == null) {
107+
//调用时音频采样的最大绝对振幅
108+
val amplitude = mediaRecorder?.maxAmplitude
109+
val db = if (amplitude == null) {
109110
0.0
110111
} else {
111-
if (ratio > 1) {
112-
30 * log10(ratio.toDouble())
112+
if (amplitude > 1) {
113+
20 * log10(amplitude / 0.1)
113114
} else {
114115
0.0
115116
}

0 commit comments

Comments
 (0)