【问题标题】:record pcmaudiodata per 10 milisecond without playback每 10 毫秒记录 pc 音频数据而不播放
【发布时间】:2019-07-12 15:50:17
【问题描述】:

我需要每 10 毫秒录制一次 pcmaudio,而不需要快速播放。

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

RecordAudio Github Repo

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

【问题讨论】:

    标签: ios swift4 avaudioplayer avaudiorecorder audiounit


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多