我正在尝试编写一个程序来记录音频文件中样本的浮点值。我的步骤如下:
我已将整个90行课程放在这个要点中:https://gist.github.com/792630
问题是,如果我将音频格式应用于扩展音频文件(步骤3),则在尝试读取文件时出错(步骤5)。如果我注释掉第5步,那么文件读起来很好,但是我不会强制执行我的读取格式,并且在登录时我不会得到浮点数。
任何建议都将不胜感激。谢谢!
答案 0 :(得分:3)
我立即注意到的一件事是你在堆栈上分配一个AudioBufferList但是将mNumberBuffers设置为2.在堆栈上使用ABL是很好的,但如果你这样做,它们只能包含一个缓冲区。但是,因为您已将客户端格式设置为单声道,这不是您真正的问题。
真正的问题是你没有将fileRef的地址传递给ExtAudioFileOpenURL-你传递了值 - 所以调用无法正确初始化变量。
通话应如下所示:
CheckResult(ExtAudioFileOpenURL(inputFileURL, &fileRef), "ExtAudioFileOpenURL failed");
我做到了,编译了你的代码,一切正常。