4行代码的iOS录音机

从Creo 2.0.4开始,新的AudioRecorder类已可用。 通过此类,开发录音机非常简单。

我们将通过在主设计板上添加AudioRecorder类(将自动创建一个AudioRecorder1实例),然后添加三个按钮来开始/停止录制以及播放录制的音频,从而开始本教程:

Timer1 Action事件如下所示:

现在,我们要在Chart控件中可视化归一化的值流(从0到100)。 因此,让我们开始创建一个数据集,该数据集以后可以由我们的图表使用。

从控件列表中将DataSet对象拖放到Window1中,并将其重命名为更具描述性的AudioDataSet。 设置自定义数据集非常简单,需要填写三个事件:

  • (此事件应返回数据集中可用行的数量)
  • (此事件应返回数据集中可用列的数量)
  • 值(行,列) (此事件应基于行/列参数返回实际值)

为了使我们的代码尽可能简单,我们的数据集将基于数组,并且我们将定义数组的最大大小,一旦超过该大小,便会从头开始重新使用数组(我们不需要历史记录图表的数据,我们只需要显示当前值)。

满足所有这些要求,我们可以从向AudioDataSet对象添加三个属性开始:

  • r = [] (这是我们的数组)
  • maxSize = 10 (这是r的最大大小,该值应在运行时计算(设备框架宽度/条项目宽度)
  • i = 0 (要写入r数组的下一个值的索引)

我们还需要添加一个辅助函数以将值添加到我们的r数组中。 我们的addValue(v)方法如下所示:

需要正确配置Chart1,我将所有详细信息的描述保留在项目文件中。 这里只是一些注意事项:

  • 数据集必须配置为AudioDataSet
  • 必须将“图表类型”设置为“条形图”,并且必须取消选中“使用动画”复选框(我们将每秒更新此图表10次,在这种情况下动画将成为瓶颈)
  • 自动范围必须禁用

现在,我们有了应用程序中所需的所有对象。 仅错过了最后一步,在Timer1 Action事件中,我们需要将计算值添加到AudioDataSet,然后重新加载Chart1。 Timer1 Action事件如下所示:

最终应用看起来像:

可以从我们的GitHub存储库下载Creo项目:https://github.com/creoapp/examples/raw/master/AudioRecorder.zip