[英]library Armen101 / AudioRecordView: chunks/ bars don't appear anymore
我正在使用库https://github.com/Armen101/AudioRecordView来可视化录音。 这工作了一段时间,但当我重新组织布局时, AudioRecordView
停止显示块。 视图仍然可见(当我将背景设置为红色时,我看到红色视图),幅度仍然正确计算(0 到 28000 之间),当我调用update
方法时,视图不是 null。 我也只有 1 个AudioRecordView
,所以我不能更新错误的。
这是 AudioRecordView 的AudioRecordView
:
<com.visualizer.amplitude.AudioRecordView
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/audioRecordView"
android:layout_marginEnd="38dp"
android:layout_marginStart="60dp"
android:background="@color/colorRed"
android:layout_width="match_parent"
android:layout_height="70dp"
app:chunkAlignTo="center"
app:chunkColor="#FFFFFF"
app:chunkMaxHeight="48dp"
app:chunkMinHeight="20dp"
app:chunkRoundedCorners="true"
app:chunkSoftTransition="false"
app:chunkSpace="1dp"
app:chunkWidth="2dp"
app:direction="leftToRight" />
这是update
调用:
timer.schedule(object : TimerTask() {
override fun run() {
val currentMaxAmplitude = mediaRecorder?.maxAmplitude ?: 0
audioRecordView!!.update(currentMaxAmplitude)
}
}, 0, 100)
再说一遍:当计时器运行时,幅度计算正确, AudioRecordView
不是 null。
视图 jsut 不再绘制块。
解决方案是显式调用runOnUiThread
:
timer.schedule(object : TimerTask() {
override fun run() {
val currentMaxAmplitude = mediaRecorder?.maxAmplitude ?: 0
activity.runOnUiThread {
audioRecordView?.update(currentMaxAmplitude / 2)
}
}
}, 0, 100)
不知道为什么它以前工作,我总是假设 dthe 库确保它在update
方法中的 UI 线程上更新。 也许我使用了新版本的库?! 我现在在'com.github.Armen101:AudioRecordView:1.0.5'
上,...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.