“无法将'浮动'转换为浮动**”错误

时间:2011-11-30 08:19:28

标签: iphone objective-c ios audio core-audio

我已将麦克风输入的样本写入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};

你认为有什么不对?这是关于指针的问题吗?

1 个答案:

答案 0 :(得分:1)

查看writeFloats:fromArray:源代码(它包含在库中,doncha kno)显示data参数实际上应该是一个数组指针数组,每个通道有一个数组指针。大概你在mWriter之前的一些消息中指定了一个频道,所以现在你可以这样做:

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

或者如果你想变得非常棘手:

[mWriter writeFloats:128 fromArray:(Float32 *[]){ mySession }];