【问题标题】:Learning Core Audio Chapter 8 Example not running学习核心音频第 8 章示例未运行
【发布时间】:2013-08-23 20:16:53
【问题描述】:

我刚刚开始学习核心音频,并且正在学习 Adamson 和 Avila 的“Learning Core Audio”中的所有示例。

第一个不起作用的例子(使用来自网站的示例代码和项目)在第 8 章。它根本没有做任何事情。

有时,但不是每次我运行程序时,最后一行都会出错

AUGraphClose(player.graph);

CH08_AUGraphInput(9781,0x7fff78ee8960) malloc: * 对象 0x104003600 的错误:未分配指针被释放 * 在 malloc_error_break 中设置断点进行调试

我只是想看看是否有人遇到过这个问题,因为我正在深入研究可能出了什么问题。

【问题讨论】:

    标签: c macos core-audio


    【解决方案1】:

    好的,通过偶然使用断点,我设法调试了它。

    时间戳的 mTimestamp 字段似乎没有在第一个输出回调中正确写入。在第一次调用时,它始终显示为 0。在第一次调用后,它与输入时间戳的值具有相似的幅度,远大于 0。因此,inToOutSampleTimeOffset 由第一个样本不是一个有意义的值,它会弄乱环形缓冲区。

    为了解决这个问题,我添加了

    if (inTimeStamp->mSampleTime > 0.0) {
    

    在第 97 行,阻止了函数其余部分的执行。它现在可以工作了,尽管它确实会发出可怕的流行音乐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 2011-06-27
      • 2017-09-28
      • 2016-02-13
      • 2017-04-26
      • 1970-01-01
      相关资源
      最近更新 更多