我只是在核心音频的速度,并正在经历所有的例子“学习核心音频”亚当森和阿维拉。
第一个不起作用的例子(使用来自web站点的示例代码和项目)在第8章中。它什么也做不了。
有时,但不是每次运行程序时,最后一行也会出现错误

AUGraphClose(player.graph);

CH08_AUGraphInput(9781,0x7fff78ee8960)malloc:*对象错误0x104003600:未分配被释放的指针
*在malloc\u error\u break中设置要调试的断点
我只是想看看是否有人有这个问题,因为我潜心研究可能会出什么问题。

最佳答案

好吧,我通过偶然使用断点成功地调试了这个。
在第一个输出回调上,时间戳的mtimestam字段似乎没有正确写入。在第一次调用时,它总是显示为0。在第一次调用之后,它的大小与输入时间戳中的值类似,后者远大于0。因此,从第一个样本计算出的inToOutSampleTimeOffset不是一个有意义的值,它正在扰乱环缓冲区。
为了解决这个问题,我补充道

if (inTimeStamp->mSampleTime > 0.0) {

在第97行,并阻止了函数其余部分的执行。它现在可以工作了,尽管它确实让一个可怕的流行音乐开始。

关于c - 学习核心音频第8章示例未运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18411143/

10-09 16:30