我已将来自麦克风输入的样本写入Float32数组,现在我想将该样本数组转换为WAV文件。

Apparently a good way to do it将使用the DIRAC library中的实用程序类,因为它的EAFWrite类具有writeFloats方法,应该可以解决问题。

当我调用EAFWrite的writeFloats方法时,出现“无法将'float'转换为float **”错误。这是电话:
[mWriter writeFloats:128 fromArray:mySession];
数组因此被初始化:Float32 mySession[10000000] = {0};
你觉得错什么?这是关于指针的问题吗?

最佳答案

看一看writeFloats:fromArray:源代码(它包含在库中,doncha kno)表明data参数实际上应该是一个数组指针数组,每个通道一个数组指针。大概您在mWriter的上一条消息中指定了一个通道,因此现在您可以执行以下操作:

Float32 *channelsData[1] = { mySession };
[mWriter writeFloats:128 fromArray:channelsData];

或者,如果您想变得非常棘手:
[mWriter writeFloats:128 fromArray:(Float32 *[]){ mySession }];

关于iphone - “Cannot convert ' float ' to float**”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8322919/

10-09 16:17