最近公司安排任务做工厂测试APP,顾名思义就是硬件出厂前协助测试员对硬件各部分进行检测的工具类APP。其中有一项是检测 mic 阵列,思路是先录音,然后播放各个 mic 的录音数据。

一路做下来,录音、播放都没问题了,但是每次点播放的时候,就会听到“嘟”一声。这声音其实就是 Button 按钮的默认点击音效,但是因为按钮点击下去马上就开始播放目标通道音频了,音效和目标音频几乎是无缝衔接,听起来就像是录到的音频有问题。如果不禁用点击音效的话,工厂的测试员必定会认为是 mic通路 有问题,进而影响测试进程。

如何禁用默认的点击音效?

最简单的办法就是在布局 xml 中给目标 Button 添加如下属性:

  1. android:soundEffectsEnabled="false"

如果这个Button只是某个列表的一部分,比如 ListView、GridView、RecyclerView 等,则只需要对这个Button所处的父容器设置上面的属性即可。

比如我为了兼顾多mic设备,这里的按钮数是动态的,录到的原始音频有几个通道(channel),我就显示几个 Button。为了达到这种效果,而且方便调整列数,我使用了GridView

  1. <GridView
  2. android:id="@+id/gridView"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:numColumns="2"
  6. android:soundEffectsEnabled="false"/>