记录每 10 毫秒的 PCM音频数据,无需播放



İ 需要每 10 毫秒录制一次 pcmaudio 而无需在 swift 中播放。

我已经尝试过此代码,但找不到如何在录制时停止播放。

录制音频 Github 存储库

第二个问题:如何从循环缓冲区获取PCM数据以进行正确的编码解码过程。当我将录制的音频数据转换为有符号字节或无符号字节或其他任何东西时,转换后的数据有时会损坏。 这种过程的最佳实践是什么

在录制音频示例代码中,音频格式指定为 Float(32 位浮动(。 执行浮点到整数转换时,必须确保缩放和偏移产生的值在目标类型的合法范围内。 例如,检查 -1.0 到 1.0 是否导致 0 到 256(无符号字节(,并且超出范围的值被裁剪为合法值。 还要注意转换的样本数量,因为音频单元回调可能会改变发送的帧计数(返回的样本数(。 您很可能不会在任何单个 RemoteIO 回调中获得正好 10 mS,但可能必须观察由多个回调填充的循环缓冲区,或者必须拆分的更大缓冲区。

当 RemoteIO 在播放和录制模式下运行时,通常可以通过在从音频单元回调返回之前将 bufferList 缓冲区清零(在复制、分析或以其他方式使用缓冲区中的数据之后(来使播放静音。

最新更新