我已将来自麦克风输入的样本写入 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
参数实际上应该是一个数组指针数组, 每个 channel 有一个数组指针。假设您在之前发送给 mWriter
的消息中指定了一个 channel ,所以现在您可以这样做:
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/