iOS可录制音频并绘制类似语音备忘录的波形

iOS可录制音频并绘制类似语音备忘录的波形,ios,opengl-es,core-graphics,core-audio,avaudiorecorder,Ios,Opengl Es,Core Graphics,Core Audio,Avaudiorecorder,我会冒着太含糊或在一个问题中问太多问题的风险问这个问题,但我真的只是在寻找正确方向上的一点 在我的应用程序中,我想录制音频,在录制时显示波形,并滚动波形以从指定时间开始录制和播放。例如,如果我有3分钟的音频,我应该能够滚动回2:00并从那里开始录制以修复错误 在语音备忘录中,这是即时完成的,没有任何延迟或加载时间。如果有人有线索的话,我想弄清楚他们是怎么做到的 我所尝试的: EZAudio-这个库很好,但并不是我想要的。您无法滚动查看波形。它在开始时删除波形数据,并在达到一定长度后开始将其追加到

我会冒着太含糊或在一个问题中问太多问题的风险问这个问题,但我真的只是在寻找正确方向上的一点

在我的应用程序中,我想录制音频,在录制时显示波形,并滚动波形以从指定时间开始录制和播放。例如,如果我有3分钟的音频,我应该能够滚动回2:00并从那里开始录制以修复错误

在语音备忘录中,这是即时完成的,没有任何延迟或加载时间。如果有人有线索的话,我想弄清楚他们是怎么做到的

我所尝试的:

EZAudio-这个库很好,但并不是我想要的。您无法滚动查看波形。它在开始时删除波形数据,并在达到一定长度后开始将其追加到结束处

这个波形很好,但它使用图像。一旦波形太长,将其放在滚动视图中会导致真正的抖动滚动。此外,您不能在录制时生成波形,只能在录制后生成

至于附加,我使用了以下方法: 但是,即使将两个非常短的音频片段附加在一起(以我的经验),处理时间也非常长


语音备忘录是如何发挥作用的?你认为波形是用OpenGL还是CoreGraphics绘制的?他们使用的是Core Audio还是AVAudioRecorder?是否有人构建了这样的东西,可以为我指出正确的方向?

放大后,滚动视图只需要绘制可见波形的一小部分。缩小后,图形视图可能仅在音频缓冲区的每N个点绘制一次,或者在渲染之前对数据使用其他DSP下采样算法。这可能必须在UIScrollView或类似的自定义控制器中使用您自己的自定义图形或图形渲染代码来完成。录制期间和之后的波形渲染代码不必相同


您使用的录制API和绘图API可以是完全独立的,几乎可以是任何东西,从OpenGL到金属到核心图形(在更新更快的设备上)。在音频端,核心音频将有助于提供最低的延迟,但音频队列和AVAudioEngine也可能适用。

谢谢。我想你是对的。我可能不得不为音频数据实现某种缓存,只绘制屏幕上可见的内容。@lusus_vir我想知道你是否能获得与voice memos应用程序类似的平滑效果?它与voice memos不太相似,但非常接近。对于第一次发布应用程序来说,它绝对足够平滑。哈!美好的想分享一下@mnearents的代码吗?