我已将麦克风输入的样本写入Float32
数组,现在我想将该样本数组转换为WAV文件。
Apparently a good way to do it将使用the DIRAC library中的实用程序类,因为其EAFWrite
类具有writeFloats
方法,可以执行此操作。
当我调用EAFWrite的writeFloats方法时,我得到一个“无法将'浮动'转换为浮动**”错误。这是电话:
[mWriter writeFloats:128 fromArray:mySession];
阵列初始化如下:
Float32 mySession[10000000] = {0};
你认为有什么不对?这是关于指针的问题吗?
答案 0 :(得分:1)
查看writeFloats:fromArray:
源代码(它包含在库中,doncha kno)显示data
参数实际上应该是一个数组指针数组,每个通道有一个数组指针。大概你在mWriter
之前的一些消息中指定了一个频道,所以现在你可以这样做:
Float32 *channelsData[1] = { mySession };
[mWriter writeFloats:128 fromArray:channelsData];
或者如果你想变得非常棘手:
[mWriter writeFloats:128 fromArray:(Float32 *[]){ mySession }];