繁体   English   中英

库 Armen101 / AudioRecordView:不再出现块/条

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM