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